@font-face{font-family:Inter Tight;src:url('assets/inter-tight-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--paper:#eaece3;--forest:#10392f;--deep:#08271f;--mint:#9edbc0;--teal:#3dc2af;--line:rgba(16,57,47,.25);--gutter:clamp(22px,4vw,80px);--display:'Inter Tight',Arial,sans-serif;--body:Manrope,Arial,sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--forest);font-family:var(--body);-webkit-font-smoothing:antialiased}button,a,input{touch-action:manipulation}button,a{color:inherit}a{text-decoration:none}button{font:inherit;cursor:pointer}button:disabled{cursor:wait}button{border:0}img,video{display:block;width:100%}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:500}em{font-style:normal;color:var(--mint)}::selection{background:var(--forest);color:var(--paper)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;top:10px;left:10px;padding:15px;background:var(--forest);color:white;transform:translateY(-160%);z-index:200}.skip-link:focus{transform:none}.section-pad{padding-inline:var(--gutter)}.eyebrow,.small-label{font-size:11px;line-height:1.5;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.crosshair{display:block;position:relative;width:25px;height:25px;flex:none}.crosshair:before,.crosshair:after{content:'';position:absolute;background:currentColor}.crosshair:before{height:1px;width:25px;top:12px;left:0}.crosshair:after{height:25px;width:1px;left:12px;top:0}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;min-height:44px;font-size:13px;font-weight:600;border-bottom:1px solid currentColor;padding-bottom:5px}.text-link>span[aria-hidden]{font-size:25px;transition:transform .25s}.text-link:hover>span[aria-hidden]{transform:translate(3px,-3px)}
.header{height:100px;display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gutter);border-bottom:1px solid var(--line);position:relative;z-index:20;background:var(--paper)}.brand{display:flex;align-items:center;gap:12px;width:207px}.brand-symbol{width:32px;height:44px;object-fit:contain}.brand-wordmark{position:relative;display:block;width:158px}.brand-wordmark>img{display:block;width:100%;height:auto;clip-path:inset(0 0 40%)}.brand-wordmark:after{content:"";position:absolute;inset:0;background:var(--forest);-webkit-mask:url("assets/somnium-wordmark.png") center/100% 100% no-repeat;mask:url("assets/somnium-wordmark.png") center/100% 100% no-repeat;clip-path:inset(60% 0 0)}.navigation{display:flex;align-items:center;gap:36px;font-size:12px;font-weight:600}.navigation>a{padding-block:15px}.navigation>a:not(.nav-contact){position:relative}.navigation>a:not(.nav-contact):after{content:'';position:absolute;left:0;right:100%;bottom:9px;height:1px;background:var(--forest);transition:right .25s}.navigation>a:hover:after{right:0}.nav-contact{display:flex;gap:34px;align-items:center;border:1px solid var(--forest);padding:12px 20px!important;margin-left:20px}.nav-contact>span{font-size:21px}.nav-contact:hover{background:var(--forest);color:var(--paper)}.menu-toggle{display:none}
.opening{padding:30px var(--gutter) 35px}.opening-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}.opening-top>.eyebrow{display:flex;gap:10px;align-items:center}.status-dot{height:6px;width:6px;background:var(--forest);border-radius:50%;display:block}.location{font-size:11px}.headline-layout{position:relative}.headline-layout h1{font-size:clamp(80px,13.3vw,225px);line-height:.86;letter-spacing:-.065em;font-weight:550}.headline-layout h1>span{display:block}.headline-layout h1>span+span{margin-top:8px}.opening-note{position:absolute;right:0;top:10px;width:22%;padding-left:24px;border-left:1px solid var(--line);display:grid;grid-template-columns:1fr 48px;gap:20px}.opening-note>.crosshair{grid-column:1/3;color:var(--forest)}.opening-note>p{font-size:clamp(14px,1.3vw,20px);line-height:1.5}.round-link{border:1px solid var(--line);border-radius:50%;height:46px;width:46px;display:grid;place-items:center;font-size:30px;align-self:end;transition:background .25s,transform .25s}.round-link:hover{background:var(--mint);transform:translate(2px,2px)}.opening-bottom{display:flex;align-items:end;justify-content:space-between;margin-top:30px}.opening-bottom>p{font-size:12px;line-height:1.6}.opening-bottom .text-link{min-width:220px}
.film-scene{height:165svh;background:var(--paper);position:relative}.film-stage{height:100svh;position:sticky;top:0;overflow:hidden}.film-frame{position:absolute;left:24%;width:72%;top:0;height:82%;overflow:hidden;background:var(--forest);will-change:left,width,height}.film-frame>video{width:100%;height:100%;object-fit:cover}.film-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.23),transparent 38%,rgba(0,0,0,.68))}.film-aside{position:absolute;left:var(--gutter);top:12%;width:18%;display:flex;flex-direction:column;gap:30px}.film-aside>p{font-family:var(--display);font-size:clamp(23px,2.5vw,43px);line-height:1.04;letter-spacing:-.03em}.film-aside>.small-label{font-weight:400;font-size:10px}.down-arrow{font-size:40px}.film-topline,.film-bottomline{position:absolute;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;color:white}.film-topline{top:26px}.film-topline>.small-label{font-size:10px}.film-toggle{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.65);background:rgba(10,32,25,.5);color:white;padding:10px 16px;border-radius:30px;font-size:11px;min-height:42px}.play-icon{width:10px;font-size:10px}.film-bottomline{bottom:40px;align-items:end}.film-bottomline>p{font-family:var(--display);font-size:clamp(36px,5.8vw,90px);line-height:.98;letter-spacing:-.04em;max-width:80%}.film-open{font-size:12px;border-bottom:1px solid white;padding:10px 0;background:none;color:inherit;display:flex;gap:35px;align-items:center}.film-open>span{font-size:24px}.film-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:rgba(255,255,255,.2)}.film-progress>span{display:block;height:100%;background:var(--mint);width:0%}
.intro{display:grid;grid-template-columns:1fr 3fr;gap:50px;padding-top:120px;padding-bottom:130px;background:var(--forest);color:var(--paper)}.section-label{display:flex;flex-direction:column;gap:26px}.section-label>.crosshair{color:var(--mint)}.intro h2{font-size:clamp(42px,5.5vw,87px);letter-spacing:-.045em;line-height:1.05}.intro-bottom{display:flex;gap:65px;align-items:end;justify-content:space-between;margin-top:48px}.intro-bottom>p{max-width:475px;font-size:15px;line-height:1.9;color:#d3dfd6}.intro-bottom>.text-link{white-space:nowrap;color:var(--mint);flex:none}
.projects{padding-top:110px;padding-bottom:125px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:72px}.section-heading h2{font-size:clamp(65px,8.7vw,144px);line-height:.9;letter-spacing:-.055em}.indented{padding-left:12vw}.project-heading-side{padding-bottom:8px;min-width:290px}.project-heading-side>p{font-size:13px;line-height:1.65;margin-bottom:40px}.filters{display:flex;gap:7px}.filters>button{padding:10px 14px;border:1px solid var(--line);border-radius:30px;min-height:42px;background:none;font-size:11px;transition:background .2s,color .2s}.filters>button[aria-pressed=true]{background:var(--forest);color:var(--paper);border-color:var(--forest)}.filters>button:hover{border-color:var(--forest)}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:2.5vw;row-gap:72px}.project-walnut{grid-column:1/8}.project-mygp{grid-column:9/13;margin-top:180px}.project-elms{grid-column:2/6;margin-top:45px}.project-somerford{grid-column:7/13}.project-button{display:block;width:100%;text-align:left;background:none;padding:0}.project-photo{position:relative;overflow:hidden;background:#cfdbcf;aspect-ratio:1.28}.project-mygp .project-photo,.project-elms .project-photo{aspect-ratio:.91}.project-photo>img{height:100%;object-fit:cover;transition:transform .8s var(--ease)}.project-button:hover .project-photo>img{transform:scale(1.035)}.image-link{position:absolute;right:16px;top:16px;background:var(--paper);color:var(--forest);height:45px;width:45px;border-radius:50%;display:grid;place-items:center;font-size:27px;transition:background .25s,transform .25s}.project-button:hover .image-link{transform:rotate(45deg);background:var(--mint)}.image-category{position:absolute;left:16px;bottom:16px;background:var(--paper);padding:8px 12px;border-radius:30px;font-size:10px}.project-caption{padding-top:19px;display:flex;flex-direction:column;gap:6px}.project-caption h3{font-size:clamp(24px,2.4vw,40px);letter-spacing:-.025em}.project-caption p{font-size:11px}.project-grid.is-filtered{grid-template-columns:1fr 1fr;gap:4vw}.project-grid.is-filtered .project{grid-column:auto;margin-top:0}.project-grid.is-filtered .project-photo{aspect-ratio:1.15}
.scrub-scene{height:190svh;position:relative;background:var(--forest);color:var(--paper)}.scrub-stage{position:sticky;top:0;height:100svh;overflow:hidden}.scrub-stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scrub-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,22,14,.66),rgba(3,22,14,.04) 75%),linear-gradient(0deg,rgba(3,22,14,.67),transparent 70%)}.scrub-top{position:absolute;left:var(--gutter);right:var(--gutter);top:36px;display:flex;align-items:center;justify-content:space-between}.scrub-mode{background:rgba(10,32,25,.65);border:1px solid rgba(255,255,255,.4);color:white;padding:12px 16px;font-size:11px;border-radius:30px;min-height:42px}.scrub-mode>span{margin-left:14px}.scrub-content{position:absolute;left:var(--gutter);right:var(--gutter);bottom:100px;display:flex;align-items:end;justify-content:space-between}.scrub-content>h2{font-size:clamp(90px,13vw,200px);line-height:.87;letter-spacing:-.06em}.scrub-copy{font-size:16px;line-height:1.5;display:flex;flex-direction:column;gap:28px;padding-right:5vw}.scrub-copy>.small-label{margin-top:10px}.scrub-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:30px;display:flex;align-items:center;gap:25px}.scrub-track{height:1px;background:rgba(255,255,255,.35);flex:1}.scrub-track>span{display:block;transform:scaleX(0);transform-origin:left;width:100%;height:2px;background:var(--mint)}
.services{padding-top:130px;padding-bottom:135px;display:grid;grid-template-columns:1fr 1.4fr;gap:10vw}.services-heading>.eyebrow{margin-bottom:32px}.services-heading>h2{font-size:clamp(58px,6.5vw,98px);line-height:.95;letter-spacing:-.05em}.services-heading em{color:#49745d}.services-heading>p:last-child{max-width:290px;line-height:1.8;font-size:13px;margin-top:35px}.service-list{padding-top:37px}.service-list>details{border-top:1px solid var(--line)}.service-list>details:last-child{border-bottom:1px solid var(--line)}.service-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--display);font-size:clamp(28px,3.7vw,61px);letter-spacing:-.04em;padding-block:25px;cursor:pointer}.service-list summary::-webkit-details-marker{display:none}.plus{font-family:var(--body);font-size:26px;font-weight:300;transition:transform .25s}.service-list details[open] .plus{transform:rotate(45deg)}.service-content{padding:0 0 35px;max-width:490px;font-size:14px;line-height:1.8}.service-content ul{list-style:none;padding:0;margin:25px 0;color:#416354;font-size:12px}.service-content li+li{margin-top:7px}.service-content .text-link{margin-top:6px;font-size:12px}
.contact{background:var(--mint);padding-top:50px;padding-bottom:50px;color:var(--deep)}.contact-top{display:flex;justify-content:space-between;align-items:center}.contact-heading{display:flex;justify-content:space-between;align-items:center;margin:65px 0 70px}.contact-heading h2{font-size:clamp(70px,11.7vw,190px);line-height:.87;letter-spacing:-.06em}.contact-heading em{color:inherit}.contact-arrow{font-family:var(--display);font-size:clamp(120px,19vw,300px);line-height:1;transition:transform .4s var(--ease)}.contact-heading:hover .contact-arrow{transform:translate(9px,-9px)}.contact-bottom{display:flex;justify-content:space-between;border-top:1px solid rgba(8,39,31,.3);padding-top:25px;gap:25px;font-size:13px;line-height:1.7}.contact-bottom>div{display:flex;flex-direction:column;gap:5px}.contact-bottom a:hover{text-decoration:underline}
.footer{background:var(--deep);color:var(--paper);padding:48px var(--gutter) 20px;overflow:hidden}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:35px;font-size:11px;line-height:1.7}.footer-brand{width:220px}.footer-brand img{height:auto}.footer-top>a:last-child{min-height:44px;display:flex;align-items:center}.footer-word{font-family:var(--display);font-size:17.5vw;line-height:1.05;letter-spacing:-.04em;font-weight:650;text-align:center;margin:48px -8px 22px;color:var(--mint)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #375449;padding-top:20px;font-size:9px;color:#b4c6bb}
dialog{border:0;padding:0;max-width:none;max-height:90svh;overscroll-behavior:contain}dialog::backdrop{background:rgba(4,24,17,.88);backdrop-filter:blur(9px)}.project-dialog{width:min(1100px,92vw);background:var(--paper);color:var(--forest)}.dialog-close{position:relative;float:right;display:flex;align-items:center;gap:20px;background:transparent;color:inherit;font-size:12px;min-height:60px;padding:15px 25px}.dialog-close>span{font-size:30px}.project-dialog-grid{clear:both;display:grid;grid-template-columns:1.2fr 1fr;min-height:440px}.project-dialog-grid>img{height:100%;object-fit:cover}.project-dialog-copy{padding:45px 35px;display:flex;flex-direction:column;align-items:start;gap:30px}.project-dialog-copy>h2{font-size:55px;line-height:1;letter-spacing:-.04em}.project-dialog-copy>p:not(.eyebrow){font-size:14px;line-height:1.8}.project-dialog-copy>.text-link{margin-top:auto}.film-dialog{width:min(1100px,94vw);background:var(--deep);color:var(--paper)}.film-dialog>video{clear:both;width:100%;max-height:70svh;object-fit:contain}.film-dialog>p{padding:18px 22px;font-size:11px}.modal-open{overflow:hidden}
@media(min-width:1800px){.opening{padding-top:40px;padding-bottom:55px}.opening-top{margin-bottom:50px}.film-aside{top:15%}.section-pad{padding-inline:max(80px,calc((100vw - 1700px)/2))}}
@media(max-width:1000px){.navigation{gap:20px}.nav-contact{margin-left:0}.headline-layout h1{font-size:13.1vw}.opening-note{width:25%;padding-left:15px}.opening-note>.round-link{display:none}.opening-note>p{grid-column:1/3}.intro{grid-template-columns:1fr 3fr;gap:30px}.intro-bottom{flex-direction:column;align-items:start;gap:25px}.intro h2{font-size:6vw}.project-mygp{grid-column:9/13;margin-top:120px}.project-elms{grid-column:1/6}.services{gap:7vw}.scrub-copy{padding-right:0}.footer-top>p{font-size:10px}}
@media(max-width:680px){html{scroll-padding-top:20px}.header{height:82px}.brand{width:166px;gap:9px}.brand-symbol{width:26px;height:35px}.brand-wordmark{width:130px}.menu-toggle{display:flex;align-items:center;gap:13px;min-height:44px;background:transparent;font-size:12px;padding:8px 0 8px 15px}.menu-icon{position:relative;width:22px;height:12px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}.menu-toggle[aria-expanded=true] .menu-icon{border:0}.menu-toggle[aria-expanded=true] .menu-icon:before,.menu-toggle[aria-expanded=true] .menu-icon:after{content:'';height:1px;width:22px;position:absolute;top:5px;left:0;background:currentColor;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-icon:after{transform:rotate(-45deg)}.navigation{display:none;position:absolute;left:0;right:0;top:81px;padding:24px var(--gutter) 32px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 15px 22px rgba(16,57,47,.1)}.navigation.is-open{display:flex;flex-direction:column;align-items:stretch;gap:8px}.navigation>a{font-size:20px;padding-block:12px}.navigation .nav-contact{margin-top:10px;justify-content:space-between}.opening{padding-top:24px;padding-bottom:25px}.opening-top{margin-bottom:26px}.opening-top>.eyebrow{font-size:8px;letter-spacing:.04em}.status-dot{width:4px;height:4px}.location{display:none}.headline-layout h1{font-size:13.9vw;font-weight:550;line-height:.91;letter-spacing:-.06em}.headline-layout h1>span+span{margin-top:2px}.opening-note{position:static;border:0;padding:0;margin-top:23px;width:100%;display:flex;align-items:center;gap:13px}.opening-note>.crosshair{width:18px;height:18px}.opening-note>.crosshair:before{width:18px;top:9px}.opening-note>.crosshair:after{height:18px;left:9px}.opening-note>p{font-size:13px}.opening-note>p br{display:none}.opening-bottom{margin-top:22px;align-items:center;gap:16px}.opening-bottom>p{font-size:10px}.opening-bottom .text-link{min-width:0;font-size:10px;gap:18px;padding-bottom:0}.opening-bottom .text-link>span{font-size:20px}.film-scene{height:120svh}.film-stage{height:83svh;top:0}.film-frame{left:var(--gutter);width:calc(100% - 2*var(--gutter));height:93%}.film-aside{display:none}.film-topline{top:18px;left:20px;right:20px}.film-topline>.small-label{font-size:9px}.film-toggle{padding:8px 12px;font-size:10px;gap:8px}.film-bottomline{bottom:30px;left:20px;right:20px;align-items:start;flex-direction:column;gap:20px}.film-bottomline>p{font-size:13vw;max-width:100%}.film-open{font-size:11px;gap:24px;min-height:40px}.intro{grid-template-columns:1fr;padding-top:65px;padding-bottom:65px;gap:35px}.section-label{flex-direction:row;align-items:center;gap:15px}.section-label>.crosshair{width:19px;height:19px}.section-label>.crosshair:before{width:19px;top:9px}.section-label>.crosshair:after{height:19px;left:9px}.intro h2{font-size:10vw;line-height:1.06}.intro-bottom{margin-top:27px;gap:25px}.intro-bottom>p{font-size:13px;line-height:1.9}.intro-bottom>.text-link{font-size:12px}.projects{padding-top:65px;padding-bottom:65px}.section-heading{flex-direction:column;align-items:start;gap:25px;margin-bottom:32px}.section-heading h2{font-size:18vw}.indented{padding-left:16vw}.project-heading-side{width:100%;min-width:0;display:flex;flex-direction:column;gap:20px}.project-heading-side>p{font-size:12px;margin:0}.filters{width:100%;gap:7px}.filters>button{padding:10px 16px;font-size:10px}.project-grid,.project-grid.is-filtered{display:grid;grid-template-columns:1fr;gap:38px}.project,.project-grid.is-filtered .project{grid-column:1;margin:0}.project-mygp{padding-left:12%}.project-elms{padding-right:12%}.project-photo,.project-grid.is-filtered .project-photo{aspect-ratio:1.05}.project-mygp .project-photo,.project-elms .project-photo{aspect-ratio:1}.project-somerford .project-photo{aspect-ratio:1.28}.project-caption{padding-top:13px;gap:5px}.project-caption h3{font-size:27px}.project-caption p{font-size:10px}.image-link{height:40px;width:40px;font-size:24px;top:12px;right:12px}.image-category{left:12px;bottom:12px;font-size:9px}.scrub-scene{height:165svh}.scrub-stage{height:90svh;top:0}.scrub-stage>video{object-position:54% center}.scrub-shade{background:linear-gradient(180deg,rgba(3,22,14,.4),transparent 25%),linear-gradient(0deg,rgba(3,22,14,.77),rgba(3,22,14,.04) 90%)}.scrub-top{top:24px;gap:10px;align-items:start}.scrub-top>.eyebrow{max-width:130px;font-size:9px;line-height:1.7}.scrub-mode{font-size:9px;padding:9px 12px}.scrub-mode>span{margin-left:7px}.scrub-content{bottom:92px;display:block}.scrub-content>h2{font-size:23vw}.scrub-copy{margin-top:28px;font-size:13px;flex-direction:row;align-items:end;justify-content:space-between;gap:15px}.scrub-copy>.crosshair{display:none}.scrub-copy>.small-label{font-size:8px;max-width:70px;line-height:1.8}.scrub-bottom{bottom:25px;gap:16px}.scrub-bottom>.small-label{font-size:8px}.services{display:block;padding-top:70px;padding-bottom:65px}.services-heading>h2{font-size:16vw}.services-heading>h2 br:nth-child(2){display:none}.services-heading>.eyebrow{margin-bottom:24px}.services-heading>p:last-child{font-size:12px;max-width:290px;margin-top:22px}.service-list{padding-top:35px}.service-list summary{font-size:35px;padding-block:22px}.service-content{font-size:13px}.service-content ul{font-size:11px}.service-content .text-link{font-size:11px}.contact{padding-top:30px;padding-bottom:30px}.contact-top>.eyebrow{font-size:8px;max-width:220px}.contact-top>.crosshair{transform:scale(.8)}.contact-heading{margin:42px 0}.contact-heading h2{font-size:16vw}.contact-arrow{font-size:25vw}.contact-bottom{flex-direction:column;font-size:12px;gap:22px}.contact-bottom>div{gap:7px}.contact-bottom a{min-height:26px}.footer{padding-top:32px}.footer-top{flex-wrap:wrap;gap:25px;font-size:10px}.footer-brand{width:175px}.footer-top>p{order:3;width:100%}.footer-word{font-size:18vw;line-height:1.2;margin:25px -4px 20px}.footer-bottom{font-size:8px;line-height:1.5;flex-wrap:wrap;gap:12px;justify-content:start}.footer-bottom>span:nth-child(2){margin-left:auto}.footer-bottom>span:last-child{width:100%}.project-dialog-grid{display:block}.project-dialog-grid>img{height:240px}.project-dialog-copy{padding:30px 24px;gap:22px}.project-dialog-copy>h2{font-size:42px}.project-dialog-copy>p:not(.eyebrow){font-size:13px}.dialog-close{min-height:50px;padding:10px 20px}.film-dialog>p{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.film-scene{height:auto}.film-stage{position:relative;height:80svh}.film-frame{left:0!important;width:100%!important;height:100%!important}.film-aside{display:none}.scrub-scene{height:auto}.scrub-stage{position:relative;height:90svh}.scrub-track{display:none}.project-photo>img{transform:none!important}}
