:root{--navy:#102942;--ink:#142e49;--gold:#aa8035;--pale:#f6f5f1;--line:#d8dcd9;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--navy);background:#fff;font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{touch-action:manipulation}img{display:block;max-width:100%;height:auto}figure,h1,h2,h3,p{margin:0}button{cursor:pointer}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip{position:fixed;top:8px;left:8px;padding:16px;background:var(--navy);color:white;z-index:20;transform:translateY(-150%)}.skip:focus{transform:none}.header{display:flex;justify-content:space-between;align-items:center;height:108px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--serif);font-size:30px;letter-spacing:.025em;line-height:1.1}.wordmark span{display:block;font:8px var(--sans);letter-spacing:.24em;margin-top:6px}.header nav{display:flex;align-items:center;gap:38px;font-size:13px}.header nav a{padding-block:12px}.header .nav-contact{border-bottom:1px solid var(--gold);display:flex;gap:36px}.hero{display:grid;grid-template-columns:1fr 1fr;position:relative;padding-top:68px;column-gap:32px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.16em;line-height:1.7}.tiny-star{font-size:22px;vertical-align:-2px;margin-right:9px;color:var(--gold)}h1,h2,h3{font-family:var(--serif);font-weight:400}h1{font-size:clamp(66px,7vw,102px);letter-spacing:-.059em;line-height:.98;margin-top:23px}em{font-weight:400;color:var(--gold)}.hero-intro{font-size:17px;line-height:1.65;max-width:350px;margin-top:30px}.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:24px;margin-top:32px}.button{display:inline-flex;gap:30px;justify-content:space-between;align-items:center;padding:18px 24px;font-size:13px;line-height:1.4;border:1px solid transparent;transition:background .2s,transform .2s;min-height:54px}.button-navy{background:var(--navy);color:white;box-shadow:0 5px 0 #e6e8e7}.button-navy:hover{background:#224260;transform:translateY(-2px)}.text-link{font-size:12px;border-bottom:1px solid var(--line);padding-bottom:8px}.text-link span{margin-left:20px}.hero-object{position:relative;min-height:500px;isolation:isolate;display:flex;justify-content:center;align-items:center;padding-bottom:70px}.object-halo{position:absolute;width:440px;max-width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(ellipse at center,#f4f1e8 0,rgba(248,247,242,.65) 48%,transparent 71%);z-index:-2}.object-disc{width:350px;max-width:80%;aspect-ratio:1;border:1px solid #d8d7cf;position:relative;border-radius:50%;background:linear-gradient(135deg,#fff 10%,#fdfcf9 45%,#eeebe2 90%);box-shadow:9px 15px 0 -8px #d9d7cf,18px 30px 35px -22px #31445945,inset 3px 4px 7px #fff,inset -3px -6px 8px #c9c5b346;transform:perspective(1100px) rotateY(-13deg) rotateX(6deg);animation:arrive-disc 1.4s cubic-bezier(.16,1,.3,1) both}.disc-ring{position:absolute;inset:14px;border-radius:50%;border:1px solid #bca77b70;box-shadow:inset 0 0 0 4px #fff8,0 0 0 3px #fff8}.object-disc img{position:absolute;inset:6% 4% 6% 10%;width:84%;height:88%;object-fit:contain;filter:drop-shadow(5px 8px 2px #16314a26)}.object-shadow{position:absolute;width:60%;height:25px;background:#182e4529;filter:blur(14px);border-radius:50%;bottom:74px;transform:rotate(-5deg)}.object-caption{position:absolute;bottom:8px;left:24%;font-size:9px;line-height:1.7;letter-spacing:.14em;color:#677280}.object-caption strong{color:var(--navy);font-weight:500}.object-coordinate{font-size:9px;letter-spacing:.15em;position:absolute;right:1%;top:25%;writing-mode:vertical-rl;color:var(--gold)}.hero-footer{grid-column:1/-1;display:flex;justify-content:space-between;border-block:1px solid var(--line);margin-top:68px;padding-block:20px;font-size:9px;letter-spacing:.12em}.hero-footer a{letter-spacing:.05em}.hero-footer a span{font-size:18px;margin-left:15px}.work{padding-top:102px;padding-bottom:104px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}h2{font-size:clamp(40px,4.7vw,66px);line-height:1.03;letter-spacing:-.048em;margin-top:20px}.section-heading>p{font-size:13px;line-height:1.8;max-width:290px;margin-bottom:4px}.work-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid #bac3c9;margin-bottom:58px}.work-tabs button{display:flex;text-align:left;align-items:center;gap:20px;padding:21px 25px;min-height:64px;border:0;background:white;font-size:14px;transition:background .2s,color .2s}.work-tabs button+button{border-left:1px solid #bac3c9}.work-tabs button>span:first-child{font-size:10px;opacity:.65}.work-tabs [aria-selected=true]{background:var(--navy);color:white;box-shadow:inset 0 -3px var(--gold)}.project-journey{position:relative;display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:64px;min-height:650px}.companion-rail{position:relative;min-width:0}.rail-line{width:1px;position:absolute;top:0;bottom:38px;left:35%;background:linear-gradient(transparent,#d7c49c70 20%,#d7c49c70 85%,transparent)}.companion{position:absolute;top:0;left:0;width:190px;will-change:transform;z-index:2;pointer-events:none}.companion-art{filter:drop-shadow(3px 5px 1px #142e4917)}.companion-art svg{width:100%;height:auto;display:block;overflow:visible}.companion-shadow{display:block;width:67%;height:12px;filter:blur(5px);background:#1029421a;border-radius:50%;margin:-2px auto 0}.project-heading{padding-top:16px;margin-bottom:30px;min-height:166px}.project-kicker{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.12em;line-height:1.7}.arrow-target{display:block;width:9px;height:9px;flex:0 0 9px;border:1px solid var(--gold);border-radius:50%;position:relative;background:#fff;transition:background .3s}.arrow-target::after{content:'';position:absolute;inset:-6px;border:1px solid var(--gold);border-radius:50%;opacity:0}.arrow-target.landed{background:var(--gold)}.arrow-target.landed::after{animation:target-arrive .7s ease-out both}.project-heading h3{font-size:clamp(32px,3.7vw,50px);letter-spacing:-.035em;line-height:1.08;margin-top:15px}.project-heading p{font-size:12px;color:#68757e;line-height:1.6;margin-top:12px}.mobile-break{display:none}.comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.project-frame{padding:12px;border:1px solid #b8c1c7;position:relative;background:white;box-shadow:5px 6px 0 #f6f5f1,6px 7px 0 #bac2c6,11px 17px 24px -19px #10294270;min-width:0}.project-frame.after{margin-top:55px;border-color:#a28c5e;box-shadow:5px 6px 0 #f6f3ec,6px 7px 0 #b7a37b,11px 17px 24px -19px #10294270}.frame-caption{display:flex;justify-content:space-between;padding-bottom:12px;font-size:9px;letter-spacing:.1em}.frame-caption>span+span{color:var(--gold)}.project-frame img{width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#f1f2ee}.project-frame figcaption{font:italic 16px var(--serif);padding-block:17px 5px}.photo-note{font-size:10px;line-height:1.8;color:#6a757b;margin-top:35px;max-width:440px}.photo-note span{color:var(--gold);margin-right:5px}.flight-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;overflow:visible}.flight-trail{fill:none;stroke:#a98031;stroke-width:1;opacity:0}.flying-arrow{opacity:0;fill:none;stroke:#ac812f;stroke-width:1.6;stroke-linecap:round}.arrow-tip{fill:#ac812f;stroke-width:.6}.companion .bowstring{transition:d .55s ease-in-out}.companion[data-state=drawing] .bowstring{d:path('M168,134 L87,210 192,250')}.companion .held-arrow{transition:transform .55s ease-in-out,opacity .1s}.companion[data-state=drawing] .held-arrow{transform:translate(221px,176px) rotate(-14.1deg)}.companion[data-state=flying] .held-arrow,.companion[data-state=landed] .held-arrow{opacity:0}.companion[data-state=flying] .bowstring{d:path('M168,134 L194,196 192,250');transition-duration:.13s}.about{display:grid;grid-template-columns:1fr 1fr;gap:72px;padding-block:90px 100px;border-top:1px solid var(--line)}.gold-rule{display:block;width:60px;height:1px;background:var(--gold);margin-top:38px}.large-copy{font-family:var(--serif);font-size:30px;line-height:1.3;letter-spacing:-.025em;margin-bottom:25px}.about-copy>p+p{font-size:14px;line-height:1.9;max-width:450px;color:#596c7a}.service{display:flex;gap:20px;margin-top:35px;padding-top:28px;border-top:1px solid var(--line)}.service svg{width:35px;height:48px;fill:none;stroke:var(--gold);stroke-width:1;flex-shrink:0}.service h3{font:14px var(--sans);margin-bottom:8px}.service p{font-size:12px;line-height:1.8;color:#596c7a;max-width:310px}.contact{background:var(--navy);color:white;position:relative}.contact-inner{padding-block:82px 90px;display:flex;align-items:center;justify-content:space-between;gap:45px}.contact .eyebrow{color:#dfc58d}.contact h2{font-size:clamp(42px,4.4vw,63px);margin-top:23px}.contact h2 em{color:#dfc58d}.contact p:not(.eyebrow){color:#d0d8df;font-size:13px;line-height:1.8;margin-top:25px}.contact-action{display:flex;flex-direction:column;gap:19px}.button-gold{background:#dec28a;color:var(--navy);white-space:nowrap;box-shadow:0 5px 0 #071d3180}.button-gold:hover{background:#e8ce9b;transform:translateY(-2px)}.contact-action>span{font-size:11px;color:#c3cdd6;letter-spacing:.08em}footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-block:42px}footer .wordmark{font-size:25px}footer p{font:italic 18px var(--serif);color:#717e86}.back-top{font-size:11px}.back-top span{margin-left:20px}
@keyframes arrive-disc{from{opacity:0;transform:perspective(1100px) rotateY(-21deg) rotateX(8deg) translateY(18px)}to{opacity:1;transform:perspective(1100px) rotateY(-13deg) rotateX(6deg) translateY(0)}}@keyframes target-arrive{0%{transform:scale(.7);opacity:.65}100%{transform:scale(2.2);opacity:0}}
@media(min-width:1450px){.hero{padding-top:85px}.hero-object{min-height:530px}.object-disc{width:400px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header{height:90px}.hero{padding-top:48px}.hero-object{min-height:440px}.object-disc{width:290px;max-width:95%}.hero-intro{font-size:15px}.project-journey{grid-template-columns:150px minmax(0,1fr);gap:36px}.companion{width:145px}.comparison{gap:18px}.project-frame{padding:9px}.project-frame figcaption{font-size:14px}.section-heading>p{font-size:12px}.contact-inner{gap:24px}.button{padding-inline:18px}.contact-action .button{font-size:11px;gap:14px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:82px;align-items:center}.wordmark{font-size:24px}.wordmark span{font-size:6px;letter-spacing:.19em}.header nav{gap:17px;font-size:10px}.header nav a:nth-child(2){display:none}.header .nav-contact{gap:14px}.hero{padding-top:35px;grid-template-columns:1fr;gap:0}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:8px;letter-spacing:.13em}.tiny-star{font-size:16px;margin-right:5px}h1{font-size:66px;line-height:.99;letter-spacing:-.06em;margin-top:23px;max-width:300px}.hero-intro{font-size:14px;line-height:1.65;max-width:285px;margin-top:22px}.hero-actions{gap:21px;margin-top:24px}.button{font-size:12px;padding:16px 20px;gap:24px;min-height:52px}.text-link{font-size:11px}.hero-object{min-height:335px;margin-top:16px;padding-bottom:48px;overflow:visible}.object-disc{width:243px;max-width:74%}.object-halo{width:320px}.object-shadow{bottom:40px;height:16px;width:55%;filter:blur(10px)}.object-caption{font-size:7px;bottom:0;left:15%;line-height:1.8}.object-coordinate{right:10%;font-size:8px;top:32%}.hero-footer{margin-top:34px;padding-block:16px;gap:14px;font-size:7px;line-height:1.5;align-items:center}.hero-footer>span{max-width:95px}.hero-footer a{font-size:8px}.hero-footer a span{margin-left:8px}.work{padding-top:65px;padding-bottom:65px}.section-heading{display:block;margin-bottom:30px}h2{font-size:43px;margin-top:15px;letter-spacing:-.05em}.section-heading>p{font-size:12px;line-height:1.8;margin-top:23px;max-width:100%}.work-tabs{margin-bottom:36px}.work-tabs button{font-size:11px;min-height:67px;padding:12px;gap:7px;line-height:1.4}.work-tabs button>span:first-child{font-size:8px}.project-journey{grid-template-columns:66px minmax(0,1fr);gap:19px;min-height:660px}.companion{width:69px;left:-4px}.rail-line{left:26px;bottom:90px}.project-heading{padding-top:10px;min-height:158px;margin-bottom:18px}.project-kicker{gap:7px;font-size:7px;letter-spacing:.04em;line-height:1.8}.arrow-target{width:7px;height:7px;flex-basis:7px}.project-heading h3{font-size:34px;line-height:1.03;margin-top:17px}.mobile-break{display:block}.project-heading p{font-size:10px;line-height:1.7;margin-top:12px;max-width:200px}.comparison{grid-template-columns:1fr;gap:28px}.project-frame{padding:9px}.project-frame.after{margin-top:0}.frame-caption{font-size:7px;padding-bottom:9px}.project-frame figcaption{font-size:14px;padding-top:13px}.photo-note{font-size:9px;line-height:1.8;margin-top:29px}.about{grid-template-columns:1fr;gap:33px;padding-block:58px 65px}.gold-rule{margin-top:27px;width:40px}.large-copy{font-size:28px;margin-bottom:20px}.about-copy>p+p{font-size:13px;line-height:1.9}.service{margin-top:26px;padding-top:23px;gap:16px}.service h3{font-size:12px}.service p{font-size:11px}.contact-inner{display:block;padding-block:60px 64px}.contact h2{font-size:43px}.contact p:not(.eyebrow){font-size:12px}.contact-action{margin-top:31px;gap:18px;align-items:flex-start}.contact-action .button{font-size:12px;padding:17px 20px;gap:22px}.contact-action>span{font-size:10px}footer{display:grid;grid-template-columns:1fr auto;gap:26px;padding-block:30px}footer .wordmark{font-size:23px}footer p{grid-column:1/-1;grid-row:2;font-size:16px;padding-top:20px;border-top:1px solid var(--line)}.back-top{font-size:9px}.back-top span{margin-left:10px}}
@media(max-width:359px){.wrap{width:calc(100% - 30px)}.header nav{gap:12px}.header .nav-contact{gap:8px}.wordmark{font-size:22px}h1{font-size:61px}h2{font-size:39px}.project-journey{grid-template-columns:57px minmax(0,1fr);gap:15px}.companion{width:61px}.work-tabs button{font-size:10px;padding:10px;gap:5px}.project-heading h3{font-size:31px}.project-kicker{font-size:6px}.contact h2{font-size:39px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.companion{will-change:auto}.object-disc{opacity:1}.flight-layer{display:none}}
.image-button{display:block;border:0;padding:0;background:transparent;width:100%;cursor:zoom-in}.photo-dialog{border:1px solid #b9b2a5;padding:54px 20px 20px;max-width:min(1140px,calc(100% - 32px));max-height:calc(100dvh - 32px);color:var(--navy)}.photo-dialog::backdrop{background:#061b2cec;backdrop-filter:blur(3px)}.photo-dialog figure{margin:0}.photo-dialog img{max-height:calc(100dvh - 165px);width:auto;max-width:100%;height:auto;object-fit:contain;margin:auto}.photo-dialog figcaption{font-size:12px;line-height:1.6;margin-top:16px;max-width:800px}.close-photo{position:absolute;top:6px;right:12px;border:0;background:white;min-height:42px;padding:8px 10px;font-size:12px}.close-photo span{font-size:22px;margin-left:20px}body:has(.photo-dialog[open]){overflow:hidden}
@media(max-width:700px){.photo-dialog{padding:51px 10px 15px;max-width:calc(100% - 16px)}.photo-dialog figcaption{font-size:11px}.photo-dialog img{max-height:calc(100dvh - 175px)}}
/* V2: direct manipulation stays inside the dedicated hero stage. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.object-disc{appearance:none;padding:0;color:inherit;font:inherit;cursor:grab;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;animation:none;transform:translate3d(var(--drag-x,0px),var(--drag-y,0px),0) perspective(1100px) rotateY(calc(-13deg + var(--tilt-y,0deg))) rotateX(calc(6deg + var(--tilt-x,0deg)));transition:transform .62s cubic-bezier(.18,.75,.25,1),box-shadow .25s;z-index:2}
.object-disc img,.disc-ring{pointer-events:none;user-select:none;-webkit-user-drag:none}.object-disc:focus-visible{outline:2px solid var(--gold);outline-offset:9px}.object-disc::after{content:'';position:absolute;inset:1px;border-radius:50%;pointer-events:none;background:linear-gradient(120deg,#ffffff55,transparent 42%,#a3863c08);box-shadow:inset 1px 1px 3px #fff9}
.is-dragging .object-disc{cursor:grabbing;transition:transform 35ms linear,box-shadow .18s;box-shadow:9px 15px 0 -8px #d9d7cf,20px 37px 38px -22px #31445955,inset 3px 4px 7px #fff,inset -3px -6px 8px #c9c5b346}
.object-shadow{transform:translateX(var(--shadow-x,0px)) rotate(-5deg) scale(var(--shadow-scale,1));transition:transform .62s cubic-bezier(.18,.75,.25,1)}.is-dragging .object-shadow{transition:transform 35ms linear}.instant-return .object-disc,.instant-return .object-shadow{transition:none}.object-hint{position:absolute;bottom:12px;right:8%;font:italic 11px var(--serif);color:#6d756f;pointer-events:none}
.star-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;contain:strict}.drag-star{position:absolute;color:#a67a28;font-size:var(--star-size);line-height:1;pointer-events:none;animation:star-fade 1.25s ease-out both;text-shadow:0 0 5px #d8b76575}.drag-star:nth-child(3n){color:#526c7f}
@keyframes star-fade{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}14%{opacity:.95;transform:translate(-50%,-50%) scale(1)}40%{opacity:.78;transform:translate(calc(-50% + var(--star-drift-x)*.25),calc(-50% + var(--star-drift-y)*.25)) scale(.9)}100%{opacity:0;transform:translate(calc(-50% + var(--star-drift-x)),calc(-50% + var(--star-drift-y))) scale(.3)}}
/* Inlaid selectors with a real pressed state, without decorative arrow icons. */
.work-tabs{gap:8px;padding:6px;background:linear-gradient(160deg,#f5f5f2,#eeefec);border:1px solid #c9cfce;box-shadow:inset 0 2px 4px #1029420c,0 1px 0 #fff;margin-bottom:58px}
.work-tabs button{position:relative;min-width:0;justify-content:flex-start;border:1px solid #d2d6d4;background:linear-gradient(145deg,#fff,#f9f8f4);box-shadow:0 3px 0 #d4d8d6,0 5px 9px -5px #1029422b,inset 0 1px 0 #fff;transform:translateY(-1px);transition:transform .16s,box-shadow .16s,background .2s,color .2s;min-height:65px;padding:20px 24px}
.work-tabs button+button{border-left:1px solid #d2d6d4}.work-tabs button>span:first-child{display:grid;place-items:center;width:25px;height:25px;border:1px solid #c5b48e;border-radius:50%;color:#806431;font-size:9px;opacity:1;flex-shrink:0;transition:color .2s,border-color .2s}
.work-tabs [aria-selected=true]{background:linear-gradient(145deg,#19374f,#0d263e);color:#fff;border-color:#142e44;box-shadow:inset 0 2px 5px #061b3266,inset 0 -2px 0 #c5a261,0 1px 0 #fff;transform:translateY(2px)}.work-tabs [aria-selected=true]>span:first-child{border-color:#a98b54;color:#e7ce96;background:#ffffff06}.work-tabs button:active{transform:translateY(3px);box-shadow:inset 0 2px 6px #10294224,inset 0 -1px 0 #be9b55}.work-tabs button:focus-visible{outline:3px solid var(--gold);outline-offset:4px;z-index:1}
@media(hover:hover) and (pointer:fine){.work-tabs button:not([aria-selected=true]):hover{background:linear-gradient(145deg,#fff,#f0ede4);box-shadow:0 4px 0 #c5ccc9,0 8px 13px -7px #10294240,inset 0 1px 0 #fff;transform:translateY(-2px)}.object-disc:hover{box-shadow:9px 15px 0 -8px #d9d7cf,20px 30px 38px -22px #31445955,inset 3px 4px 7px #fff,inset -3px -6px 8px #c9c5b346}}
@media(max-width:700px){.hero-object{min-height:375px}.object-hint{font-size:10px;bottom:8px;right:11%}.work-tabs{padding:5px;gap:7px;margin-bottom:36px}.work-tabs button{padding:12px 9px;gap:8px;min-height:68px;font-size:11px}.work-tabs button>span:first-child{width:21px;height:21px;font-size:8px}}
@media(max-width:359px){.work-tabs button{font-size:10px;padding:10px 7px;gap:6px}.work-tabs button>span:first-child{width:18px;height:18px;font-size:7px}.object-hint{right:5%;font-size:9px}}
@media(prefers-reduced-motion:reduce){.object-disc,.object-shadow,.work-tabs button{transition:none!important}.star-field{display:none}.object-disc{transform:translate3d(var(--drag-x,0px),var(--drag-y,0px),0) perspective(1100px) rotateY(-13deg) rotateX(6deg)}.object-shadow{transform:rotate(-5deg)}}
