/* Project Constellation: local mapping of /design/tokens.json. */
:root{--constellation-space:24px;--constellation-radius:16px;--constellation-focus:3px;--constellation-target:44px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:var(--constellation-focus) solid var(--accent);outline-offset:3px}
.menu-toggle{min-width:var(--constellation-target);min-height:var(--constellation-target)}
.family-strip .wrap{height:auto;min-height:var(--constellation-target)}
.family-strip a{min-height:var(--constellation-target)}
.header-nav>a,.footer-top a,.footer-legal a,.family-links a,.text-link{min-height:var(--constellation-target);display:inline-flex;align-items:center}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);column-gap:32px;align-items:center;padding-top:64px}
.hero-copy{position:relative;z-index:1;min-width:0}.hero .kicker{font-size:11px;letter-spacing:.12em}
.hero .hero-photo{opacity:.13}.hero .hero-shade{background:linear-gradient(90deg,#070e1b 20%,#070e1bF2 65%,#070e1bCF)}
.hero .lead{max-width:560px}.hero .hero-facts{grid-column:1/-1;margin-top:56px}
.constellation-map{color:#e1bdad;position:relative;margin:0;width:100%;max-width:480px;justify-self:center;pointer-events:none}
.constellation-map svg{display:block;width:100%;height:auto;overflow:visible}
.constellation-wordmark{font:500 18px Northstar,Arial,sans-serif;letter-spacing:4px;fill:currentColor}
.constellation-label{font:500 10px Northstar,Arial,sans-serif;letter-spacing:1px;fill:currentColor}
.constellation-map figcaption{font-size:10px;letter-spacing:.2em;text-align:center;margin-top:-20px;color:#e1bdad}
.purpose-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px}.purpose-grid article{border-top:1px solid var(--line);padding-top:24px;min-width:0}
.purpose-grid h2{font-size:clamp(27px,2.6vw,38px);line-height:1.25;letter-spacing:-.8px;max-width:470px}
.purpose-grid p:last-child{color:var(--muted);margin-top:20px;max-width:520px}.purpose-grid .kicker{margin-bottom:16px}
@media(max-width:1100px){.hero .wrap{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);column-gap:24px}.hero h1{font-size:clamp(44px,5.4vw,68px)!important}.constellation-label{font-size:11px}}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr;padding-top:48px}.hero-copy{max-width:700px!important}.constellation-map{max-width:360px;margin-top:32px}.hero .hero-facts{margin-top:32px}.purpose-grid{gap:32px}}
@media(max-width:600px){.hero h1{font-size:clamp(38px,10vw,54px)!important}.hero .kicker{line-height:1.7;max-width:320px}.hero-actions{gap:16px}.hero-actions a{min-height:44px}.constellation-map{max-width:320px;margin-top:24px}.purpose-grid{grid-template-columns:1fr;gap:40px}.constellation-map figcaption{font-size:9px;letter-spacing:.15em}.hero .hero-facts{gap:16px}.hero-facts>span{max-width:100%}.family-strip .wrap{height:auto;min-height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Editorial refinement: space for the craft, with one quiet focal composition. */
.lustra .hero .wrap{padding-top:80px;column-gap:48px;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr)}
.lustra .hero h1{font-weight:400;line-height:1.04;letter-spacing:-.045em}
.lustra .hero .lead{max-width:49ch;line-height:1.8}
.lustra .hero .hero-photo{opacity:.08;filter:saturate(.5)}
.lustra .constellation-map{max-width:440px}
.lustra .hero .hero-facts{margin-top:64px;padding-block:24px}
.lustra .constellation-purpose{padding-block:88px;background:#0a1220}
.lustra .purpose-grid{gap:80px}
.lustra .purpose-grid article{padding-top:32px;border-color:#e1bdad40}
.lustra .purpose-grid h2{font-family:NorthstarSerif,Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(30px,3.2vw,42px);line-height:1.25;max-width:22ch}
.lustra .purpose-grid p:last-child{max-width:47ch;line-height:1.85}
@media(max-width:900px){.lustra .hero .wrap{grid-template-columns:1fr;padding-top:48px;column-gap:0}.lustra .purpose-grid{gap:40px}.lustra .constellation-purpose{padding-block:64px}}
@media(max-width:600px){.lustra .hero h1{line-height:1.08}.lustra .hero .hero-facts{margin-top:40px}.lustra .constellation-purpose{padding-block:56px}.lustra .purpose-grid article{padding-top:24px}}

/* Transparent family mark: the wordmark provides the accessible name. */
.site-header .brand-symbol,.site-footer .brand-symbol{width:40px;height:40px;object-fit:contain;flex-shrink:0}
.site-header .brand{gap:14px}.site-footer .brand{gap:12px}
@media(max-width:600px){.site-header .brand-symbol{width:36px;height:36px}}

/* Approved direction: a sculpted botanical study, with room around the craft. */
.lustra .hero{background:#0a0e19}
.lustra .hero .hero-shade{background:linear-gradient(115deg,#080d18 30%,#11131e 72%,#201a23 100%)}
.lustra .hero .wrap{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);column-gap:56px;padding-top:88px}
.lustra .hero h1{font-size:clamp(54px,5.3vw,78px);line-height:1.04;letter-spacing:-.045em}
.lustra .hero .lead{font-size:18px;line-height:1.75;max-width:47ch;margin-top:30px}
.lustra .hero-actions{margin-top:30px;gap:28px}
.lustra .hero-actions .button{border-radius:6px}
.lustra .craft-study{max-width:440px;align-self:center;margin-top:0}
.lustra .craft-study figcaption{margin-top:-44px;font-size:9px;letter-spacing:.17em;color:#d7b5a8}
.lustra .hero .hero-facts{margin-top:64px;padding-block:25px}
.lustra .feature-grid{border:0;border-radius:0;background:transparent;gap:0 48px}
.lustra .feature{padding:30px 0 34px;background:transparent;border-top:1px solid #e1bdad30;border-radius:0}
.lustra .feature-top{margin-bottom:24px}.lustra .feature h3{font-size:27px;letter-spacing:-.025em}
.lustra .feature p{line-height:1.8;max-width:36ch}
@media(max-width:1100px){.lustra .hero h1{font-size:clamp(46px,5.6vw,64px)!important}.lustra .hero .wrap{column-gap:24px}.lustra .craft-study{max-width:360px}}
@media(max-width:900px){.lustra .hero .wrap{grid-template-columns:1fr;padding-top:52px}.lustra .hero-copy{max-width:690px!important}.lustra .craft-study{width:min(360px,100%);margin-top:32px}.lustra .hero .hero-facts{margin-top:32px}.lustra .feature-grid{gap:0 32px}}
@media(max-width:600px){.lustra .hero .wrap{padding-top:42px}.lustra .hero h1{font-size:clamp(39px,10.2vw,56px)!important;line-height:1.06}.lustra .hero .kicker{margin-bottom:24px}.lustra .hero .lead{font-size:16px;line-height:1.7;margin-top:27px}.lustra .hero-actions{margin-top:26px;gap:12px}.lustra .hero-actions .button{width:100%;justify-content:space-between}.lustra .hero-note{margin-top:14px}.lustra .craft-study{width:min(300px,100%);margin-top:22px}.lustra .craft-study figcaption{margin-top:-22px}.lustra .hero .hero-facts{margin-top:25px;gap:14px;font-size:12px}.lustra .feature{padding-block:26px}.lustra .feature h3{font-size:26px}}
@media(forced-colors:active){.lustra .hero .hero-shade{background:Canvas}.craft-study{display:none}}

/* A complete catalog crown, with the approved mark in its open center. */
.lustra .craft-study{pointer-events:auto}
.lustra .craft-study>svg{pointer-events:none}
.lustra .craft-study figcaption{margin-top:-16px;line-height:1.8;letter-spacing:.1em;font-size:10px}
.lustra .craft-study figcaption>span{display:block}
.lustra .craft-study figcaption>a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 0;font-size:12px;letter-spacing:0;text-transform:none;color:#e1c8bd;pointer-events:auto}
.lustra .craft-study figcaption>a:hover{text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){.lustra .craft-study figcaption{margin-top:-8px;font-size:9px;letter-spacing:.08em}}

.lustra .workflow-study{--workflow-ink:#dfbdaf;--workflow-text:#f3eee9;--workflow-muted:#cfc5c5;--workflow-line:#dfbdaf42;--workflow-shadow:#0b101b;--workflow-glass:linear-gradient(145deg,rgba(38,26,33,.16),rgba(12,15,23,.04))}

/* Shared transparent workflow treatment: sourced stars, decorative rings, native semantic copy. */
.lustra .workflow-study{width:100%;max-width:500px;pointer-events:auto;margin:0;align-self:center;background:none;border-radius:0;color:var(--workflow-ink)}
.lustra .workflow-composition{position:relative;isolation:isolate}
.lustra .workflow-study :is(.workflow-sky,.sky-survey-plate),.lustra .workflow-study .workflow-orbits{position:absolute;z-index:0;left:-52px;top:-52px;width:calc(100% + 104px);height:auto;max-width:none;pointer-events:none;overflow:visible;object-fit:contain;filter:none;opacity:1}
.lustra .workflow-frame{position:relative;z-index:1;padding:32px;background:var(--workflow-glass);border:1px solid var(--workflow-line);border-radius:2px;box-shadow:none;backdrop-filter:none}
.lustra .workflow-heading{display:flex;align-items:center;gap:11px;margin:0 0 34px;font:400 11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em;color:var(--workflow-ink);max-width:29ch;text-shadow:0 1px 4px var(--workflow-shadow)}
.lustra .workflow-heading>span{width:5px;height:5px;flex-shrink:0;border-radius:50%;background:currentColor}
.lustra .workflow-steps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px 26px;padding:0;margin:0;list-style:none}
.lustra .workflow-steps>li{min-width:0;min-height:98px;position:relative}
.lustra .workflow-index{display:none;font:400 9px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em;margin-bottom:10px;color:var(--workflow-ink);text-shadow:0 1px 4px var(--workflow-shadow)}
.lustra .workflow-steps h3{margin:0 0 10px;font:400 34px/1.12 Georgia,'Times New Roman',serif;letter-spacing:-.035em;color:var(--workflow-text);text-shadow:0 1px 5px var(--workflow-shadow)}
.lustra .workflow-detail{margin:0;font:400 12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.015em;color:var(--workflow-muted);text-shadow:0 1px 5px var(--workflow-shadow)}
.lustra .workflow-detail>span{display:inline-block;max-width:18ch}
.lustra .workflow-reflection{margin:26px 0 0;padding-top:23px;border-top:1px solid var(--workflow-line);font:italic 400 22px/1.45 Georgia,'Times New Roman',serif;letter-spacing:-.02em;color:var(--workflow-text);text-shadow:0 1px 6px var(--workflow-shadow)}
.lustra .workflow-reflection em{font:inherit;color:inherit;letter-spacing:inherit}
.lustra .workflow-trust{margin:17px 0 0;font:400 12px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em;color:var(--workflow-muted);text-shadow:0 1px 5px var(--workflow-shadow)}
.lustra .workflow-corner{position:absolute;width:9px;height:9px;border-color:var(--workflow-ink);border-style:solid;opacity:.7;pointer-events:none}
.lustra .workflow-corner.top-left{top:-1px;left:-1px;border-width:1px 0 0 1px}.lustra .workflow-corner.top-right{top:-1px;right:-1px;border-width:1px 1px 0 0}.lustra .workflow-corner.bottom-left{bottom:-1px;left:-1px;border-width:0 0 1px 1px}.lustra .workflow-corner.bottom-right{bottom:-1px;right:-1px;border-width:0 1px 1px 0}
.lustra .workflow-study figcaption{position:relative;margin:19px 0 0;font-size:11px;line-height:1.8;letter-spacing:.11em;text-align:left;color:var(--workflow-ink)}
.lustra .workflow-study figcaption>span{display:block}.lustra .workflow-study figcaption>a{justify-content:flex-start;color:var(--workflow-muted);min-height:44px;font-size:12px}
@media(max-width:900px){.lustra .workflow-study{width:min(100%,500px);margin:38px 0 0;justify-self:start;align-self:flex-start}}
@media(max-width:600px){.lustra .workflow-study{width:100%;max-width:420px;margin-top:38px}.lustra .workflow-frame{padding:25px 20px}.lustra .workflow-study :is(.workflow-sky,.sky-survey-plate),.lustra .workflow-study .workflow-orbits{left:0;top:26px;width:100%}.lustra .workflow-heading{font-size:11px;letter-spacing:.11em;margin-bottom:30px}.lustra .workflow-steps{gap:28px 18px}.lustra .workflow-steps>li{min-height:92px}.lustra .workflow-index{margin-bottom:10px}.lustra .workflow-steps h3{font-size:28px;letter-spacing:-.04em}.lustra .workflow-detail{font-size:12px;line-height:1.7;letter-spacing:.015em}.lustra .workflow-reflection{font-size:20px;margin-top:24px;padding-top:22px}.lustra .workflow-trust{font-size:12px;line-height:1.8;letter-spacing:.015em}.lustra .workflow-study figcaption{margin-top:18px;font-size:11px}}
@media(max-width:360px){.lustra .workflow-steps h3{font-size:26px}.lustra .workflow-heading{font-size:11px}.lustra .workflow-steps{column-gap:14px}.lustra .workflow-detail{font-size:12px}}
@media(forced-colors:active){.lustra .workflow-study{display:block;color:CanvasText}.lustra .workflow-sky,.lustra .workflow-orbits{display:none!important}.lustra .workflow-frame{background:Canvas;border-color:CanvasText}.lustra .workflow-heading,.lustra .workflow-steps h3,.lustra .workflow-detail,.lustra .workflow-reflection,.lustra .workflow-trust,.lustra .workflow-index,.lustra .workflow-study figcaption{color:CanvasText;text-shadow:none}}

/* Fit the complete catalog graph around the typography; only the entire image is scaled/translated. */
.lustra .workflow-study :is(.workflow-sky,.sky-survey-plate),.lustra .workflow-study .workflow-orbits{width:119.144497%;left:-9.598331%;top:-69.7371px}
@media(max-width:600px){.lustra .workflow-study :is(.workflow-sky,.sky-survey-plate),.lustra .workflow-study .workflow-orbits{width:114.285714%;left:-6.000000%;top:29.5376px}}
@media(max-width:360px){.lustra .workflow-study :is(.workflow-sky,.sky-survey-plate),.lustra .workflow-study .workflow-orbits{width:110.714286%;left:-10.000000%;top:-12.3320px}}


/* Live constellation light controls stay outside the scientific diagram. */
.lustra .workflow-study .sky-controls{display:flex;align-items:center;flex-wrap:wrap;gap:2px 24px;margin-top:2px;letter-spacing:0}
.lustra .workflow-study .sky-controls>a,.lustra .workflow-study .sky-light-toggle{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;max-width:100%;padding:8px 0;color:var(--workflow-muted);font:400 12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0;text-transform:none;pointer-events:auto}
.lustra .workflow-study .sky-controls>a:hover{text-decoration:underline;text-underline-offset:5px}
.lustra .workflow-study .sky-light-toggle{appearance:none;background:transparent;border:0;border-radius:2px;cursor:pointer;text-align:left}
.lustra .workflow-study .sky-light-toggle:not(:disabled):hover{color:var(--workflow-text)}
.lustra .workflow-study .sky-light-toggle:disabled{cursor:default;opacity:.8}
.lustra .workflow-study .sky-controls :is(a,button):focus-visible{outline:3px solid var(--workflow-ink);outline-offset:3px}
.lustra .workflow-study .sky-light-toggle>svg{display:block;flex:0 0 16px;width:16px;height:16px;overflow:visible}
.lustra .workflow-study .sky-icon-play{display:none}
.lustra .workflow-study[data-sky-state="paused"] .sky-icon-pause{display:none}
.lustra .workflow-study[data-sky-state="paused"] .sky-icon-play{display:block}
.lustra .workflow-study .sky-motion-status{margin:4px 0 0;max-width:42ch;font:400 12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:0;color:var(--workflow-muted)}
.lustra .workflow-study .sky-motion-status[hidden]{display:none}
@media(max-width:360px){.lustra .workflow-study .sky-controls{column-gap:18px}}

/* Approved B2B2C SaaS positioning preserves each studio’s scope and setup boundaries. */
.saas-positioning .saas-boundary{margin-top:24px;font-size:14px;line-height:1.8;color:var(--muted)}

/* Until actual rendered word masks are ready, omit guides and keep real stars visible. */

[data-constellation-clearance] svg:is([data-live-sky],[data-clearance-art]):not([data-clearance-ready="true"]) :is(line,path,polyline,polygon,ellipse,rect),
[data-constellation-clearance] svg[data-clearance-art]:not([data-clearance-ready="true"]) circle,
[data-constellation-clearance] [data-clearance-layer]:not([data-clearance-ready="true"]){visibility:hidden}


/* A small plot tag belongs to the star figure, separately from the company identity. */
.lustra .workflow-study figcaption .sky-cluster-tag{position:relative;display:inline-flex;align-items:center;flex-wrap:wrap;gap:0 .55em;max-width:100%;padding-left:10px;color:inherit;font:400 11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.055em;text-transform:uppercase}
.lustra .workflow-study .sky-cluster-tag:before{content:"";position:absolute;left:0;top:-19px;height:32px;border-left:1px solid currentColor;opacity:.4}
.lustra .workflow-study .sky-cluster-kind{opacity:.78;letter-spacing:.07em}

/* Registered 2MASS survey: identical fixed projection fit beneath the catalog figure. */
.lustra .workflow-study .sky-survey-plate{display:block;aspect-ratio:1;z-index:-1;opacity:.84;mix-blend-mode:screen;filter:brightness(1.35) contrast(1.04) saturate(1.10);animation:none;transition:none}
.lustra .workflow-study .sky-survey-plate img{display:block;width:100%;height:100%;object-fit:contain;animation:none;transition:none}
.lustra .workflow-study .sky-survey-links{display:flex;align-items:center;flex-wrap:wrap;gap:0 20px;margin-top:4px;letter-spacing:0}
.lustra .workflow-study .sky-survey-links a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font:400 11px/1.6 ui-monospace,monospace;color:var(--workflow-muted);letter-spacing:.02em}
.lustra .workflow-study .sky-survey-links a:focus-visible{outline:3px solid var(--workflow-ink);outline-offset:3px}
@media(forced-colors:active){.lustra .workflow-study .sky-survey-plate{display:none}}

.lustra .workflow-study .sky-survey-plate img{mask-image:radial-gradient(ellipse closest-side at center,#000 35%,#000d 65%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse closest-side at center,#000 35%,#000d 65%,transparent 100%)}

.lustra .workflow-study .sky-survey-links a:not(:first-child){font-size:12px}

/* A one-pixel halo follows individual letters over the observed sky; the photograph stays continuous. */
@media(forced-colors:none){.lustra .workflow-study [data-clearance-text],.lustra .workflow-study [data-clearance-text] :is(h2,h3,p,li,div,span,em,a,button){text-shadow:-1px -1px 0 #0b101b,0px -1px 0 #0b101b,1px -1px 0 #0b101b,-1px 0px 0 #0b101b,1px 0px 0 #0b101b,-1px 1px 0 #0b101b,0px 1px 0 #0b101b,1px 1px 0 #0b101b,0 1px 4px #0b101b}}

/* Approved constellation story: a separate editorial band, clear of the sky artwork. */
.lustra .constellation-story{padding-block:64px;background:var(--bg);border-bottom:1px solid var(--line)}
.lustra .constellation-story-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:start}
.lustra .constellation-story-grid>div{min-width:0}
.lustra .constellation-story .kicker{margin-bottom:18px;font-size:11px;letter-spacing:.13em}
.lustra .constellation-story h2{max-width:24ch;font-size:clamp(28px,3vw,38px);line-height:1.25;letter-spacing:-.03em}
.lustra .constellation-story-route{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:24px;color:var(--muted);font-size:11px;line-height:1.8;letter-spacing:.025em}
.lustra .constellation-story-copy>p{max-width:64ch;font-size:16px;line-height:1.85;color:var(--muted)}
.lustra .constellation-story-links{display:flex;align-items:center;flex-wrap:wrap;gap:0 24px;margin-top:18px}
.lustra .constellation-story-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;font-size:12px;line-height:1.7;color:var(--accent);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}
.lustra .constellation-story-links a:hover{text-decoration-color:currentColor}
@media(max-width:900px){.lustra .constellation-story-grid{gap:36px}}
@media(max-width:760px){.lustra .constellation-story{padding-block:48px}.lustra .constellation-story-grid{grid-template-columns:1fr;gap:26px}.lustra .constellation-story-route{margin-top:18px}.lustra .constellation-story-copy>p{font-size:16px;line-height:1.8}}
@media(forced-colors:active){.lustra .constellation-story{background:Canvas;color:CanvasText;border-color:CanvasText}.lustra .constellation-story :is(p,h2,em){color:CanvasText}.lustra .constellation-story-links a{color:LinkText;text-decoration-color:LinkText}}
