:root{--obsidian:#0B0B0D;--graphite:#16161A;--bone:#F5F0E6;--bone-dim:#E7E0D2;--signal:#C9432E;--brass:#B8935A;--muted:#9A9AA2;--ink:#141414;--serif:'Fraunces',Georgia,serif;--sans:'Inter',-apple-system,sans-serif}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--obsidian);color:var(--bone);font-family:var(--sans);overflow-x:hidden}::selection{background:var(--brass);color:var(--obsidian)}
#preloader{position:fixed;inset:0;z-index:999;background:var(--obsidian);display:flex;align-items:center;justify-content:center;transition:opacity .8s ease,visibility .8s ease}#preloader.hidden{opacity:0;visibility:hidden;pointer-events:none}.pre-wrap{position:relative;width:280px;height:280px;display:flex;align-items:center;justify-content:center}.pre-word{font-family:var(--serif);font-weight:500;font-style:italic;font-size:2.4rem;letter-spacing:.02em;color:var(--bone);opacity:0;animation:pre-fade 1.2s ease forwards .2s;z-index:2}@keyframes pre-fade{to{opacity:1}}.pre-dot{position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--brass);opacity:0;animation:pre-orbit 1.6s cubic-bezier(.2,.8,.2,1) forwards}.pre-dot:nth-child(1){--tx:120px;--ty:-10px;animation-delay:.1s}.pre-dot:nth-child(2){--tx:-90px;--ty:70px;animation-delay:.25s}.pre-dot:nth-child(3){--tx:40px;--ty:110px;animation-delay:.4s}.pre-dot:nth-child(4){--tx:-110px;--ty:-60px;animation-delay:.55s}.pre-dot:nth-child(5){--tx:90px;--ty:-95px;animation-delay:.7s}@keyframes pre-orbit{0%{opacity:0;transform:translate(-50%,-50%) translate(0,0) scale(0)}60%{opacity:1}100%{opacity:.9;transform:translate(-50%,-50%) translate(var(--tx),var(--ty)) scale(1)}}
#hero{position:relative;height:100vh;min-height:640px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:var(--obsidian)}.hero-video{position:absolute;inset:0;width:100%;height:100%;z-index:0;object-fit:cover;object-position:center;opacity:.66}#hero::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,11,13,.68),rgba(11,11,13,.50) 48%,rgba(11,11,13,.78)),radial-gradient(ellipse at 50% 45%,rgba(11,11,13,.08),rgba(11,11,13,.50) 72%)}#hero>:not(.hero-video){position:relative;z-index:2}.hero-copy{display:contents}.eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:1.4rem;opacity:0;animation:rise .8s ease forwards .1s}.hero-word{font-family:var(--serif);font-weight:500;font-style:italic;font-size:clamp(3.5rem,11vw,8rem);line-height:.95;color:var(--bone);opacity:0;animation:rise .9s ease forwards .25s}.hero-sub{font-size:1rem;color:var(--muted);max-width:440px;margin:1.4rem auto 0;line-height:1.6;opacity:0;animation:rise .9s ease forwards .45s}@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.orbit-field{position:absolute;inset:0;pointer-events:none}.orbit-track{position:absolute;top:50%;left:50%;width:1px;height:1px;animation:orbit-spin 70s linear infinite}@keyframes orbit-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.orbit-track{transform:translate(-50%,-50%)}.orbit-node{position:absolute;top:0;left:0;transform:rotate(var(--angle)) translateX(var(--radius))}.node-inner{pointer-events:auto;animation:orbit-counter 70s linear infinite;display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;transform:translate(-50%,-50%);border:0;background:transparent;color:inherit}@keyframes orbit-counter{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(-360deg)}}.node-dot{width:10px;height:10px;border-radius:50%;background:var(--node-color,var(--brass));box-shadow:0 0 0 6px color-mix(in srgb,var(--node-color,var(--brass)) 18%,transparent);transition:transform .25s ease}.node-inner:hover .node-dot,.node-inner:focus-visible .node-dot{transform:scale(1.5)}.node-label{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap;opacity:0;transform:translateY(-4px);transition:opacity .25s ease,transform .25s ease}.node-inner:hover .node-label,.node-inner:focus-visible .node-label{opacity:1;transform:translateY(0);color:var(--bone)}.scroll-cue{position:absolute;bottom:2.4rem;left:50%;transform:translateX(-50%);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:.6rem}.scroll-cue .line{width:1px;height:34px;background:var(--muted);position:relative;overflow:hidden}.scroll-cue .line::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--brass);animation:cue-drop 2s ease-in-out infinite}@keyframes cue-drop{to{top:100%}}
section{position:relative}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:translateY(0)}
#founder{background:linear-gradient(90deg,rgba(11,11,13,.80) 0%,rgba(11,11,13,.52) 50%,rgba(11,11,13,.80) 100%),url('Content/founder-background.JPG') center/cover no-repeat;color:var(--bone);min-height:72vh;padding:8rem 6vw;display:grid;grid-template-columns:1fr;align-items:center;justify-items:center;overflow:hidden}#founder>:not(.corner-orbit){position:relative;z-index:1}.corner-orbit{--orbit-size:150px;position:absolute;width:var(--orbit-size);height:var(--orbit-size);opacity:.72;pointer-events:none}.corner-orbit::before{content:'';position:absolute;inset:20px;border:1px solid rgba(184,147,90,.28);border-radius:50%}.corner-orbit.top-left{top:-58px;left:-58px}.corner-orbit.top-right{top:-58px;right:-58px}.corner-orbit.bottom-left{bottom:-58px;left:-58px}.corner-orbit.bottom-right{bottom:-58px;right:-58px}.corner-orbit-track{position:absolute;inset:0;animation:founder-orbit 18s linear infinite}.corner-orbit:nth-child(2) .corner-orbit-track,.corner-orbit:nth-child(4) .corner-orbit-track{animation-direction:reverse}.corner-dot{position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 5px rgba(184,147,90,.13);transform:rotate(var(--angle)) translateX(55px)}.corner-dot:nth-child(2){--angle:120deg;background:var(--signal);box-shadow:0 0 0 5px rgba(201,67,46,.13)}.corner-dot:nth-child(3){--angle:240deg}@keyframes founder-orbit{to{transform:rotate(360deg)}}.founder-portrait{aspect-ratio:4/5;border-radius:2px;background:var(--graphite);position:relative;overflow:hidden;transition:transform .1s linear;display:none}.founder-portrait img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 35%}.founder-role{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin-bottom:1rem}.founder-name{font-family:var(--serif);font-weight:500;font-size:clamp(2rem,4vw,3rem);margin-bottom:1.4rem}.founder-bio{font-size:1rem;line-height:1.75;color:rgba(245,240,230,.84);max-width:520px;margin-bottom:1.2rem}.founder-vision{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--bone);border-left:2px solid var(--brass);padding-left:1.2rem;margin-top:1.6rem;max-width:480px}.founder-copy{max-width:650px;text-align:center}.founder-copy .founder-bio{margin-left:auto;margin-right:auto}.founder-copy .founder-vision{margin-left:auto;margin-right:auto;text-align:left}
#subsidiaries{background:var(--obsidian)}.sub-eyebrow{text-align:center;padding:6rem 0 2rem;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.portfolio-slider{position:relative;min-height:78vh;overflow:hidden;background:var(--graphite)}.company-slide{position:absolute;inset:0;padding:clamp(3rem,7vw,6rem) 8vw;display:flex;align-items:flex-end;opacity:0;transform:scale(1.025);pointer-events:none;transition:opacity .7s ease,transform .9s ease;background:radial-gradient(circle at 78% 20%,color-mix(in srgb,var(--company-color) 48%,transparent),transparent 42%),linear-gradient(125deg,var(--obsidian) 15%,color-mix(in srgb,var(--company-color) 23%,var(--obsidian)) 100%)}.company-slide.active{opacity:1;transform:scale(1);pointer-events:auto;z-index:1}.company-slide::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,11,13,.35),transparent 75%)}.company-slide .sub-content{position:relative;z-index:1;max-width:620px}.sub-tag{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--company-color,var(--brass));margin-bottom:.8rem}.sub-name{font-family:var(--serif);font-weight:500;font-size:clamp(2.3rem,5vw,4.4rem);margin-bottom:.8rem}.sub-tagline{font-size:1rem;color:var(--muted);line-height:1.6;max-width:520px}.sub-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.2rem;font-size:.74rem;letter-spacing:.06em;color:var(--bone);text-decoration:none;border-bottom:1px solid rgba(245,240,230,.3);padding-bottom:2px;width:fit-content}.slider-controls{position:absolute;right:6vw;bottom:2.4rem;z-index:2;display:flex;align-items:center;gap:.8rem}.slider-count{min-width:3.4rem;color:var(--bone);font-size:.72rem;letter-spacing:.08em}.slider-button{width:38px;height:38px;border:1px solid rgba(245,240,230,.32);border-radius:50%;background:rgba(11,11,13,.35);color:var(--bone);cursor:pointer;transition:background .2s ease,border-color .2s ease}.slider-button:hover,.slider-button:focus-visible{background:var(--brass);border-color:var(--brass)}.slider-progress{position:absolute;right:6vw;bottom:1.3rem;z-index:2;width:190px;height:2px;background:rgba(245,240,230,.2);overflow:hidden}.slider-progress i{display:block;width:100%;height:100%;background:var(--brass);transform-origin:left;transform:scaleX(0)}.slider-progress.is-playing i{animation:slider-progress 3s linear forwards}.slider-progress.is-paused i{animation-play-state:paused}@keyframes slider-progress{to{transform:scaleX(1)}}
footer{padding:5rem 6vw 3rem;text-align:center;color:var(--muted);font-size:.78rem;border-top:1px solid rgba(245,240,230,.08)}footer .foot-word{font-family:var(--serif);font-style:italic;color:var(--bone);font-size:1.1rem;margin-bottom:.6rem}
@media (max-width:860px){#hero{height:auto;min-height:0;display:block}.hero-video{position:relative;inset:auto;display:block;width:100%;height:auto;object-fit:contain}.hero-copy{position:absolute!important;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1.5rem}.hero-copy .eyebrow{margin-bottom:1.1rem}.hero-copy .hero-sub{max-width:min(440px,88vw)}#founder{min-height:620px;padding:5rem 6vw}.corner-orbit{--orbit-size:112px;opacity:.5}.corner-orbit::before{inset:15px}.corner-dot{transform:rotate(var(--angle)) translateX(41px)}.portfolio-slider{min-height:68vh}.slider-controls{right:6vw;bottom:2.1rem}.slider-progress{right:6vw;bottom:1rem;width:140px}.orbit-node{display:none}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hero-video{display:none}}

/* Media for the public page is supplied by Firestore, not hard-coded here. */
#founder{background-color:var(--obsidian);background-position:center;background-size:cover;background-repeat:no-repeat}

/* Keep the loading motif alive while Firestore content is being retrieved. */
.pre-dot{animation-iteration-count:infinite;animation-direction:alternate}

/* Preserve legibility over changing video frames. */
#hero::before{background:linear-gradient(180deg,rgba(11,11,13,.82),rgba(11,11,13,.62) 48%,rgba(11,11,13,.88)),radial-gradient(ellipse at 50% 45%,rgba(11,11,13,.16),rgba(11,11,13,.62) 72%)}
.hero-word{text-shadow:0 3px 24px rgba(0,0,0,.72)}
.hero-sub{color:rgba(245,240,230,.92);text-shadow:0 2px 14px rgba(0,0,0,.7)}
#hero .eyebrow{color:rgba(245,240,230,.78);text-shadow:0 2px 12px rgba(0,0,0,.7)}

/* Give the hero copy a consistent dark reading area on every video frame. */
@media (min-width:861px){.hero-copy{display:flex;flex-direction:column;align-items:center;max-width:760px;padding:2.75rem 3.25rem;background:radial-gradient(ellipse at center,rgba(11,11,13,.72),rgba(11,11,13,.42) 66%,transparent 100%);text-shadow:0 2px 16px rgba(0,0,0,.8)}}

/* The founder portrait is a desktop-only element; the background remains the mobile treatment. */
@media (min-width:861px){#founder{grid-template-columns:minmax(280px,420px) minmax(0,650px);gap:clamp(3rem,7vw,7rem);padding-top:5.5rem;padding-bottom:5.5rem;justify-content:center;justify-items:stretch}.founder-portrait{display:block;width:100%;max-width:420px;aspect-ratio:3/4;justify-self:end}.founder-copy{justify-self:start;text-align:left}.founder-copy .founder-bio,.founder-copy .founder-vision{margin-left:0;margin-right:0}}
