@charset "UTF-8";
@font-face{font-family:"MYER Sans SC";src:url("assets/myer-noto-sans-sc-industry-subset.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:"MYER Manrope";src:url("assets/myer-manrope-latin-subset.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap}
/* Local OFL webfont subsets. Current-page CJK coverage; new characters use the system sans-serif fallback. */
.brand,.eyebrow,.email,.company-details [lang=en]{font-family:var(--font-latin)}
/* Shared page controls; scene centre and selection transitions belong to the renderer. */
:root{color-scheme:dark;--background:#020406;--text:#e5e6e3;--muted:#a6afb2;--warm:#e4c38f;--edge:clamp(22px,3vw,60px);--panel-width:clamp(340px,23.6vw,440px);--font-body:"MYER Manrope","MYER Sans SC","PingFang SC","Microsoft YaHei",sans-serif;--font-latin:"MYER Manrope","MYER Sans SC",Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;background:var(--background);color:var(--text);font-family:var(--font-body);font-weight:400;font-synthesis:none;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;border-radius:0;padding:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,summary:focus-visible,canvas:focus-visible{outline:1px solid #d7e7ef;outline-offset:5px}[hidden]{display:none!important}::selection{background:#d2dce2;color:#020406}
.skip-link{position:fixed;z-index:50;left:20px;top:-100px;background:#e7ecee;color:#03070a;padding:12px 18px;font-size:14px}.skip-link:focus{top:18px}
.masthead{position:absolute;z-index:8;left:var(--edge);right:var(--edge);top:clamp(22px,3.7vh,44px);display:flex;justify-content:space-between;align-items:center;pointer-events:none}.masthead>*{pointer-events:auto}.brand{font-size:clamp(15px,1.25vw,22px);font-weight:300;letter-spacing:.28em;line-height:1.4}.contact-link{display:flex;align-items:center;gap:12px;font-size:clamp(13px,1vw,17px);letter-spacing:.18em;min-height:32px}.contact-link span{font-size:1.35em;font-weight:300}
.universe{position:relative;width:100%;height:100svh;min-height:520px;overflow:hidden;isolation:isolate}.sphere-stage{position:absolute;inset:0}.sphere-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline-offset:-8px}.sphere-stage canvas:active{cursor:grabbing}
.hero-title{position:absolute;z-index:2;inset:0;margin:0;pointer-events:none;font-family:var(--font-body);font-size:clamp(43px,4.65vw,94px);font-weight:200;line-height:1.3;letter-spacing:.11em;color:#e1e3e1;text-shadow:0 2px 24px #0008}.hero-title span{position:absolute;top:46.2%;transform:translateY(-50%)}.title-left{left:5.5%}.title-right{right:5.1%}
.core-caption{position:absolute;z-index:2;left:50%;bottom:6.1%;transform:translateX(-50%);margin:0;font-family:var(--font-body);font-weight:300;font-size:clamp(14px,1.2vw,21px);line-height:1.5;letter-spacing:.5em;white-space:nowrap;pointer-events:none}
.site-footer{position:absolute;z-index:5;bottom:5.5%;left:var(--edge);right:var(--edge);display:flex;justify-content:space-between;align-items:center;pointer-events:none}.site-footer button{pointer-events:auto;min-height:34px;font-size:clamp(12px,1.03vw,17px);letter-spacing:.14em}.site-footer span{font-size:20px;margin-left:4px;font-weight:300}.site-footer .about-link{font-size:12px;color:#aab3b7;letter-spacing:.12em}
.has-panel .about-link{visibility:hidden;pointer-events:none}
.page-status{position:absolute;left:50%;bottom:11.4%;transform:translateX(-50%);z-index:4;max-width:calc(100% - 48px);font-size:12px;color:#abb9c0;line-height:1.7;text-align:center;letter-spacing:.12em;pointer-events:none}
#node-layer{position:absolute;inset:0;pointer-events:none;z-index:3}.node-label{position:absolute;left:0;top:0;display:flex;align-items:center;gap:12px;max-width:260px;padding:8px 2px;font-size:13px;line-height:1.5;letter-spacing:.12em;pointer-events:auto;color:var(--warm);text-shadow:0 1px 12px #000,0 1px 4px #000;white-space:normal;text-align:left;will-change:transform}.node-label:before{content:"";display:block;width:34px;height:1px;background:linear-gradient(90deg,#b69b66,#e7cb93);flex:none}.node-label:hover{color:#fff0d6}
/* One persistent nonmodal panel: details and the complete index share its scroll area. */
.business-panel{position:absolute;z-index:6;right:2.35%;top:9.5%;bottom:7%;width:var(--panel-width);display:flex;flex-direction:column;border-left:1px solid #abb1b26b;background:linear-gradient(113deg,#070a0be8,#030506f7 72%);backdrop-filter:blur(18px);padding:clamp(60px,8.6vh,88px) clamp(28px,2.2vw,40px) clamp(26px,4.5vh,44px);animation:panel-in .45s ease both}.panel-close{position:absolute;right:21px;top:17px;width:36px;height:36px;font-size:31px;font-weight:200;line-height:32px;color:#d2d6d7;z-index:2}.panel-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#65727c55 transparent;padding:0 5px 18px 0}.eyebrow{margin:0 0 17px;font-size:clamp(10px,.8vw,13px);letter-spacing:.32em;line-height:1.8;font-weight:400;color:#a7adaf;overflow-wrap:anywhere}.business-panel h2{font-family:var(--font-body);font-size:clamp(30px,2.6vw,48px);font-weight:300;line-height:1.4;letter-spacing:.06em;margin:0 0 clamp(24px,4.2vh,44px);overflow-wrap:anywhere;outline:none}.business-copy{font-family:var(--font-body);font-size:clamp(14px,1.03vw,18px);line-height:1.95;letter-spacing:.1em;margin:0;color:#c5cac8;white-space:pre-line;overflow-wrap:anywhere}.business-tags{display:flex;flex-wrap:wrap;gap:8px 0;list-style:none;padding:0;margin:clamp(24px,5vh,52px) 0 0;font-family:var(--font-body);font-size:clamp(12px,.95vw,16px);letter-spacing:.12em;line-height:1.8;color:#b9c1c1}.business-tags li:not(:last-child):after{content:"·";margin:0 .7em;color:#788284}
.panel-footer{flex:none;padding-top:17px}.panel-index-toggle{width:100%;min-height:48px;text-align:left;padding-top:18px;border-top:1px solid #aab3b249;font-family:var(--font-body);font-size:clamp(14px,1.05vw,18px);letter-spacing:.1em;display:flex;gap:8px;align-items:center}.panel-index-toggle span{font-size:20px;font-family:var(--font-latin);font-weight:300}.panel-contact{display:flex;align-items:center;gap:13px;min-height:36px;margin-top:clamp(25px,5.5vh,60px);font-family:var(--font-body);font-size:clamp(14px,1.06vw,18px);letter-spacing:.12em;color:var(--warm);text-align:left}.panel-contact span{font:22px var(--font-latin);font-weight:300}
.business-index{display:flex;flex-direction:column;margin-top:-10px}.index-service{width:100%;text-align:left;min-height:62px;padding:16px 0;border-bottom:1px solid #c0cfdb1e;display:flex;justify-content:space-between;gap:12px;align-items:center;font-family:var(--font-body);font-size:18px;font-weight:400;letter-spacing:.06em;line-height:1.55}.index-service span:first-child{overflow-wrap:anywhere}.index-service span:last-child{font-family:var(--font-latin);font-size:16px;color:#88989f}.index-service:hover,.index-service[aria-current="true"]{color:var(--warm)}.index-options{padding-top:16px}#motion-toggle{min-height:30px;font-size:11px;letter-spacing:.08em;color:#9faeb5;display:flex;gap:14px;align-items:center}#motion-toggle span{min-width:22px;color:#d1d9dc}#motion-toggle:disabled{opacity:.45;cursor:default}.index-empty{font-size:14px;line-height:1.9;color:#adb9bd;margin:0}
dialog{width:min(650px,calc(100% - 40px));max-height:85svh;overflow:auto;overscroll-behavior:contain;border:1px solid #bacbd53f;border-left-color:#bacbd578;padding:55px 42px 36px;background:linear-gradient(125deg,#10171bf7,#040709);color:var(--text);box-shadow:0 22px 120px #000a;scrollbar-width:thin;scrollbar-color:#5c6a7466 transparent}dialog::backdrop{background:#020406b5;backdrop-filter:blur(10px)}.dialog-close{position:absolute;right:15px;top:12px;min-width:36px;min-height:36px;font-size:29px;font-weight:200}dialog h2{font-family:var(--font-body);font-size:clamp(26px,3vw,40px);font-weight:300;letter-spacing:.09em;margin:8px 0 31px}.email{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:clamp(16px,3vw,26px);line-height:1.5;letter-spacing:.02em;border-bottom:1px solid #bacbd54d;padding-bottom:10px;overflow-wrap:anywhere}.contact-person{display:flex;gap:22px;flex-wrap:wrap;font-size:14px;line-height:1.8;color:#b6c0c4;margin:21px 0 0}.company-details{margin-top:32px;border-top:1px solid #bacbd529;color:#b0bcc2}.company-details summary{display:flex;justify-content:space-between;align-items:center;gap:15px;list-style:none;min-height:54px;font-size:14px;letter-spacing:.1em;cursor:pointer}.company-details summary::-webkit-details-marker{display:none}.company-details[open] summary span{transform:rotate(45deg)}.company-details p{font-size:14px;line-height:1.9;overflow-wrap:anywhere;margin:0 0 12px}.company-details [lang=en]{font-size:12px;line-height:1.7;color:#879ca6}.company-details h3{font-size:13px;font-weight:400;margin:25px 0 10px;color:#d0d7da}.no-script{position:absolute;z-index:7;left:50%;top:50%;width:min(540px,calc(100% - 40px));transform:translate(-50%,-50%);padding:25px;background:#0a1118;border:1px solid #8fa5b744;font-size:14px;line-height:1.8}.no-script a{display:block;padding:8px 0;color:#dfc795}
@keyframes panel-in{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}
@media(min-width:1800px){.business-panel{right:3%;width:24%}}
@media(max-width:1100px) and (min-width:761px){:root{--panel-width:340px}.business-panel{right:2%;padding-left:26px;padding-right:23px}.business-panel h2{font-size:30px}.business-copy{font-size:14px}.hero-title{font-size:clamp(40px,4.4vw,52px)}}
@media(max-width:760px){:root{--edge:23px}.universe{min-height:480px}.masthead{top:24px}.brand{font-size:16px}.contact-link{font-size:13px;gap:9px}.hero-title{font-size:clamp(32px,7.5vw,49px);letter-spacing:.06em}.hero-title span{top:43%}.title-left{left:6%}.title-right{right:5.5%}.core-caption{bottom:100px;font-size:14px;letter-spacing:.4em}.site-footer{bottom:30px}.site-footer button{font-size:13px}.site-footer .about-link{font-size:11px}.page-status{bottom:139px;font-size:11px;min-width:210px}.node-label{font-size:11px;max-width:165px;gap:8px}.node-label:before{width:21px}.business-panel{left:16px;right:16px;top:auto;bottom:max(16px,env(safe-area-inset-bottom));width:auto;height:53svh;max-height:calc(100svh - 110px);min-height:240px;padding:49px 25px 22px;background:linear-gradient(125deg,#0b1012f5,#030608fc);border-top:1px solid #abb1b22d;animation:panel-in .35s ease both}.panel-close{right:12px;top:8px}.panel-scroll{padding-bottom:8px}.eyebrow{font-size:10px;margin-bottom:7px;letter-spacing:.24em}.business-panel h2{font-size:28px;margin-bottom:17px}.business-copy{font-size:13px;line-height:1.85;letter-spacing:.06em}.business-tags{font-size:12px;margin-top:18px;letter-spacing:.06em}.panel-footer{padding-top:6px;display:grid;grid-template-columns:1fr auto;column-gap:16px;border-top:1px solid #aab3b238;align-items:center}.panel-index-toggle{border:0;padding-top:0;min-height:38px;font-size:13px;letter-spacing:.06em}.panel-index-toggle span{font-size:17px}.panel-contact{font-size:13px;margin:0;min-height:38px;gap:8px;letter-spacing:.06em;justify-self:end}.panel-contact span{font-size:18px}.index-options{grid-row:2;grid-column:1/-1;padding-top:0}#motion-toggle{font-size:10px;min-height:24px}.index-service{font-size:16px;min-height:50px;padding:11px 0}dialog{padding:48px 25px 25px;max-height:87svh}.contact-person{gap:8px 16px}.company-details{margin-top:23px}.company-details p{font-size:13px}}
/* Short windows keep all fixed controls inside the viewport; only content scrolls. */
@media(max-height:620px) and (min-width:761px){
  .universe{min-height:0}
  .masthead{top:18px}
  .site-footer{bottom:16px}
  .core-caption{bottom:23px}
  .business-panel{top:max(58px,12svh);bottom:16px;padding-top:48px;padding-bottom:14px}
  .business-panel h2{font-size:30px;margin-bottom:18px}
  .business-tags{margin-top:20px}
  .panel-footer{padding-top:6px;display:grid;grid-template-columns:1fr auto;column-gap:12px;border-top:1px solid #aab3b238;align-items:center}
  .panel-index-toggle{border:0;padding-top:0;min-height:36px;font-size:13px;letter-spacing:.06em}
  .panel-index-toggle span{font-size:17px}
  .panel-contact{font-size:13px;margin:0;min-height:36px;gap:8px;letter-spacing:.06em;justify-self:end}
  .panel-contact span{font-size:18px}
  .index-options{grid-row:2;grid-column:1/-1;padding-top:0}
  #motion-toggle{font-size:10px;min-height:24px}
}
@media(max-width:760px) and (max-height:430px){
  .universe{min-height:0}
  .masthead{top:15px}
  .site-footer{bottom:16px}
  .core-caption{bottom:24px;font-size:12px;letter-spacing:.28em}
  .page-status{bottom:62px}
  .business-panel{height:calc(100svh - 88px);max-height:calc(100svh - 88px);min-height:0;padding-top:44px;padding-bottom:12px}
  .business-panel h2{font-size:24px;margin-bottom:12px}
  .panel-scroll{padding-bottom:6px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Borderless gallery composition. Adjust these shared tokens first; the full canvas
   stays untouched. Detail and index keep one scrollable nonmodal content region. */
:root{--footer-bottom:clamp(26px,4.5svh,58px);--panel-width:clamp(265px,26%,470px)}
.masthead{top:clamp(25px,3.6svh,45px);align-items:flex-start}
.brand{display:inline-flex;flex-direction:column;align-items:flex-start;gap:5px;line-height:1.35}
.brand-mark{font-size:clamp(16px,1.3vw,23px);letter-spacing:.28em}
.brand-name{font-family:var(--font-body);font-size:clamp(11px,.85vw,15px);font-weight:350;letter-spacing:.26em;color:#c5cdce}
.contact-link{min-height:36px}
.universe{min-height:0}
/* One broad veil: no hard panel edge, no pointer interception. */
.universe:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 42%,#0204060d 52%,#02040680 68%,#020406de 84%,#020406ee 100%);transition:opacity .5s ease}
.universe.has-panel:after{opacity:1}
.hero-title{position:absolute;inset:auto;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.core-caption{z-index:5;bottom:calc(var(--footer-bottom) + 8px);font-size:clamp(13px,1.2vw,20px);letter-spacing:.45em}
.site-footer{z-index:7;bottom:var(--footer-bottom)}
.site-footer button{min-height:44px;letter-spacing:.12em}
.has-panel .about-link{visibility:visible;pointer-events:auto}
.page-status{bottom:calc(var(--footer-bottom) + 65px)}
.node-label:before{background:#d5b880}
.business-panel{right:var(--edge);left:auto;top:18.5%;bottom:17%;width:var(--panel-width);height:auto;max-height:none;min-height:0;padding:clamp(56px,8svh,90px) 0 0;border:0;background:none;backdrop-filter:none;box-shadow:none}
.panel-close{right:-7px;top:0;width:44px;height:44px;line-height:40px}
.panel-scroll{padding:0 6px 14px 0}
.eyebrow{margin-bottom:18px;font-size:clamp(10px,.79vw,13px);letter-spacing:.3em}
.business-panel h2{font-size:clamp(30px,2.7vw,50px);margin-bottom:clamp(26px,3.8svh,44px)}
.business-copy{font-size:clamp(14px,1.01vw,18px);letter-spacing:.055em}
.business-tags{font-size:clamp(12px,.91vw,16px);letter-spacing:.08em;margin-top:clamp(27px,4.8svh,54px)}
.panel-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:12px;border-top:1px solid #aab3b22b}
.business-panel[data-view="detail"] .panel-footer{display:none}
.panel-contact{display:none}
.panel-index-toggle{width:auto;min-height:44px;border:0;padding-top:0;font-size:13px;letter-spacing:.08em}
.business-panel[data-view="index"]{top:14%;bottom:calc(var(--footer-bottom) + 65px);padding-top:56px}
.business-panel[data-view="index"] h2{font-size:clamp(27px,2.35vw,39px);margin-bottom:22px}
.business-index{margin-top:0}
.index-service{min-height:59px;padding:14px 0;font-size:clamp(16px,1.18vw,20px)}
.index-options{flex:none;padding-top:0}
#motion-toggle{min-height:44px}
@keyframes panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1100px) and (min-width:761px){
  :root{--panel-width:29%}
  .business-panel{top:17%;padding-top:56px}
  .business-panel h2{font-size:30px;letter-spacing:.04em}
  .business-copy{font-size:14px;letter-spacing:.025em}
  .business-tags{font-size:12px;letter-spacing:.04em}
  .eyebrow{letter-spacing:.22em}
}
/* Portrait phones: sphere above, floating copy below, global controls stay visible. */
@media(max-width:760px){
  :root{--edge:23px;--footer-bottom:calc(18px + env(safe-area-inset-bottom))}
  .masthead{top:max(22px,env(safe-area-inset-top))}
  .brand{gap:3px}.brand-mark{font-size:16px}.brand-name{font-size:10px;letter-spacing:.23em}
  .contact-link{font-size:12px;gap:9px;min-height:36px}
  .universe:after{background:linear-gradient(180deg,transparent 24%,#0204060a 37%,#0204069c 54%,#020406ed 69%,#020406f7 100%)}
  .core-caption{bottom:calc(var(--footer-bottom) + 57px);font-size:12px;letter-spacing:.32em}
  .site-footer button{font-size:12px;letter-spacing:.08em}
  .page-status{bottom:calc(var(--footer-bottom) + 101px)}
  .business-panel{left:var(--edge);right:var(--edge);top:53%;bottom:calc(var(--footer-bottom) + 101px);width:auto;height:auto;max-height:none;min-height:0;padding:33px 0 0;border:0;background:none}
  .panel-close{right:-8px;top:-6px;font-size:28px}
  .panel-scroll{padding:0 5px 7px 0}
  .eyebrow{font-size:9px;margin-bottom:7px;letter-spacing:.23em}
  .business-panel h2{font-size:28px;margin-bottom:14px;letter-spacing:.04em;line-height:1.35}
  .business-copy{font-size:13px;line-height:1.85;letter-spacing:.035em}
  .business-tags{font-size:11px;margin-top:18px;letter-spacing:.04em;gap:5px 0}
  .business-panel[data-view="index"]{top:17%;bottom:calc(var(--footer-bottom) + 101px);padding-top:40px}
  .universe:has(.business-panel[data-view="index"]:not([hidden])):after{background:linear-gradient(180deg,#02040620 0%,#020406dc 17%,#020406f7 55%,#020406fc 100%)}
  .business-panel[data-view="index"] h2{font-size:28px;margin-bottom:14px}
  .index-service{font-size:16px;min-height:48px;padding:10px 0}
  .panel-footer{gap:16px;padding-top:5px}
  .panel-index-toggle{font-size:12px;letter-spacing:.04em}
  #motion-toggle{font-size:10px;gap:10px}
}
/* Short desktop windows: only the content scrolls, never the close/footer controls. */
@media(max-height:620px) and (min-width:761px){
  :root{--footer-bottom:13px}
  .masthead{top:18px}.brand{gap:1px}.brand-mark{font-size:16px}.brand-name{font-size:10px}
  .business-panel{top:19%;bottom:calc(var(--footer-bottom) + 56px);padding-top:38px}
  .panel-close{top:-7px}
  .business-panel h2{font-size:28px;margin-bottom:16px}
  .business-tags{margin-top:20px}
  .eyebrow{margin-bottom:9px}
  .business-panel[data-view="index"]{top:20%;bottom:calc(var(--footer-bottom) + 56px);padding-top:35px}
  .business-panel[data-view="index"] h2{font-size:26px;margin-bottom:12px}
  .index-service{min-height:46px;padding:9px 0;font-size:15px}
  .panel-footer{padding-top:2px;gap:10px}
  .panel-index-toggle,#motion-toggle{min-height:35px;font-size:10px}
}
/* Phone landscape: use a compact right column, with no sheet over the star sphere. */
@media(max-width:760px) and (max-height:500px){
  :root{--edge:20px;--footer-bottom:10px}
  .masthead{top:14px}.brand{gap:1px}.brand-mark{font-size:14px}.brand-name{font-size:9px}
  .contact-link{font-size:11px;min-height:30px}
  .universe:after{background:linear-gradient(90deg,transparent 28%,#0204061a 43%,#020406bd 64%,#020406f5 88%)}
  .core-caption{bottom:calc(var(--footer-bottom) + 11px);font-size:11px;letter-spacing:.22em}
  .site-footer button{font-size:10px}.site-footer span{font-size:16px}.site-footer .about-link{font-size:10px}
  .business-panel,.business-panel[data-view="index"]{left:60%;right:var(--edge);top:17%;bottom:calc(var(--footer-bottom) + 56px);padding-top:32px}
  .panel-close{top:-9px}.eyebrow{font-size:8px;letter-spacing:.16em;margin-bottom:5px}
  .business-panel h2,.business-panel[data-view="index"] h2{font-size:22px;margin-bottom:11px}
  .business-copy{font-size:11px;line-height:1.8;letter-spacing:.01em}
  .business-tags{font-size:10px;margin-top:13px}
  .index-service{min-height:39px;padding:7px 0;font-size:13px}
  .panel-footer{gap:8px}.panel-index-toggle,#motion-toggle{font-size:9px;min-height:31px;gap:5px}
  .page-status{bottom:calc(var(--footer-bottom) + 56px)}
}
