/* Home-only interactive gateway. Text and links never follow the pointer. */
.portal-page { --portal-ease: cubic-bezier(.23,1,.32,1); background: #070e14; }
.portal-page .site-header { background: #070e14f2; }
.portal-page .gateway { width: min(1400px,calc(100% - 64px)); padding-block: 46px 0; }
.portal-page .gateway-intro { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin: 0 18px 32px; }
.portal-page .gateway-eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; color: #a3bcc4; font-size: 10px; font-weight: 600; letter-spacing: .18em; }
.portal-page .gateway-eyebrow>span { width: 5px; height: 5px; border-radius: 50%; background: #69e3dc; box-shadow: 0 0 14px #6ce4d76b; }
.portal-page .gateway-intro h1 { font-size: clamp(38px,4.6vw,66px); font-weight: 580; line-height: 1.13; letter-spacing: -.05em; }
.portal-page .gateway-intro h1 em { color: #80e4da; font-weight: 380; }
.portal-page .gateway-intro-note { padding-bottom: 3px; }
.portal-page .gateway-intro-note>p { color: #a6b8c5; font-size: 13px; line-height: 1.8; }
.portal-page .gateway-mouse-hint { display: none; align-items: center; gap: 9px; margin-top: 13px; color: #8ca7b3; font: 8px/1.5 Consolas,monospace; letter-spacing: .12em; }
.portal-page .gateway-paths { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.portal-page .gateway-path { position: relative; isolation: isolate; display: flex; flex-direction: column; min-width: 0; padding: 28px 36px 20px; border: 1px solid #3d6a704d; border-radius: 22px; overflow: hidden; }
.portal-page .gateway-path::after { content: ''; position: absolute; z-index: -1; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 1px #b9ffed13,inset 0 -1px #82b8bb08; }
.portal-page .gateway-repair { background: radial-gradient(ellipse at 54% 64%,#176b5f37,transparent 65%),linear-gradient(155deg,#122b2d,#091b22 65%,#0b1d23); }
.portal-page .gateway-software { border-color: #3a658156; background: radial-gradient(ellipse at 65% 54%,#1f5e8b33,transparent 67%),linear-gradient(155deg,#112b3a,#0d1b2c 65%,#101f30); }
.portal-page .gateway-glow { position: absolute; z-index: -1; top: 0; left: 0; width: 660px; height: 660px; border-radius: 50%; background: radial-gradient(circle,#5cfee82e,transparent 65%); opacity: 0; pointer-events: none; transition: opacity 220ms ease; }
.portal-page .gateway-software .gateway-glow { background: radial-gradient(circle,#70bcff35,transparent 65%); }
.portal-page .gateway-path.is-active .gateway-glow { opacity: 1; }
.portal-page .gateway-watermark { position: absolute; z-index: -1; top: 12px; right: -6px; color: #a0f8e608; font-size: clamp(110px,13vw,190px); font-weight: 750; line-height: 1; letter-spacing: -.075em; pointer-events: none; user-select: none; }
.portal-page .gateway-software .gateway-watermark { top: 31px; right: -11px; font-size: clamp(75px,8vw,120px); color: #a2d8ff08; }
.portal-page .gateway-path-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 29px; }
.portal-page .gateway-category { display: flex; gap: 10px; align-items: center; color: #d2e9e7; font-size: 11px; font-weight: 650; letter-spacing: .13em; }
.portal-page .gateway-category img { flex: 0 0 30px; width: 30px; height: 30px; object-fit: contain; }
.portal-page .gateway-index { color: #98b5bc; font: 10px/1.4 Consolas,monospace; letter-spacing: .06em; }
.portal-page .gateway-copy h2 { font-size: clamp(35px,3.5vw,50px); line-height: 1.08; letter-spacing: -.047em; font-weight: 590; }
.portal-page .gateway-copy h2 span { color: #7ce5d6; font-weight: 380; }
.portal-page .gateway-software .gateway-copy h2 span { color: #94c9ef; }
.portal-page .gateway-copy>p { margin-top: 19px; max-width: 460px; min-height: 69px; color: #b4c6ce; font-size: 13px; line-height: 1.8; }
.portal-page .gateway-features { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; padding: 0; margin: 16px 0 0; color: #c2d8d8; font-size: 10px; line-height: 1.6; }
.portal-page .gateway-features li::before { content: ''; display: inline-block; width: 4px; height: 4px; margin-right: 7px; border-radius: 50%; background: #63cbbd; vertical-align: middle; }
.portal-page .gateway-art { position: relative; height: 286px; margin: 8px -18px 0; isolation: isolate; pointer-events: none; }
.portal-page .gateway-layer { position: absolute; inset: 0; }
.portal-page .gateway-board-base { top: 37px; }
.portal-page .gateway-board-photo { display: grid; place-items: center; inset: 0 0 24px; }
.portal-page .gateway-board-photo::before { content: ''; position: absolute; z-index: -1; inset: auto 12% 12px; height: 44px; border-radius: 50%; background: radial-gradient(ellipse,#0008,transparent 70%); }
/* Keep the full-resolution source in the normal 2D paint path, not a 3D texture. */
.portal-page .gateway-board-photo>img { display: block; width: 100%; height: 100%; max-height: 250px; object-fit: contain; transform: rotate(-10deg); }
.portal-page .gateway-board .repair-visual { overflow: visible; border: 0; border-radius: 0; background: none; }
.portal-page .gateway-board .repair-visual-top,.portal-page .gateway-board figcaption,.portal-page .gateway-board .repair-board-note { display: none; }
.portal-page .gateway-board .repair-board-stage { height: 237px; }
.portal-page .gateway-board .repair-board { width: 100%; height: 270px; max-width: 505px; transform: perspective(900px) rotateX(31deg) rotateY(-10deg) rotateZ(-14deg); filter: drop-shadow(0 23px 15px #0007); }
.portal-page .gateway-board .repair-board-grid { inset: -13px -20px 0; background-size: 25px 25px; opacity: .7; }
.portal-page .gateway-chip { display: grid; place-items: center; inset: -14px 0 auto; height: 205px; }
.portal-page .gateway-chip>svg { width: 162px; height: 162px; transform: perspective(800px) rotateX(26deg) rotateY(-10deg) rotateZ(-14deg); filter: drop-shadow(10px 30px 17px #0009) drop-shadow(0 0 20px #4ee4cb1c); }
.portal-page .gateway-orbit { position: absolute; z-index: -1; left: 50%; top: 49%; border: 1px solid #74e2d01b; border-radius: 50%; transform: translate(-50%,-50%) rotateX(58deg) rotateZ(-14deg); pointer-events: none; }
.portal-page .gateway-orbit-outer { width: 420px; height: 350px; }
.portal-page .gateway-orbit-inner { width: 300px; height: 255px; border-style: dashed; border-color: #74e2d028; }
.portal-page .gateway-scene-note { position: absolute; display: flex; gap: 9px; align-items: center; padding: 11px 13px; border: 1px solid #80dac83b; border-radius: 8px; background: #102e31ed; box-shadow: 0 12px 30px #0004; color: #cbe7e1; font: 8px/1.5 Consolas,monospace; letter-spacing: .04em; }
.portal-page .gateway-scene-note>span { width: 5px; height: 5px; border-radius: 50%; background: #6fecbd; box-shadow: 0 0 10px #6fecbd80; }
.portal-page .gateway-scene-note small { display: block; margin-top: 2px; color: #9fbcbf; font: 9px/1.6 'Segoe UI',sans-serif; letter-spacing: 0; }
.portal-page .gateway-scene-note-left { bottom: 29px; left: 2%; }
.portal-page .gateway-scene-note-right { top: 0; right: 5%; background: #152c41f5; border-color: #80bae03b; }
.portal-page .gateway-art-label { position: absolute; z-index: 2; bottom: 1px; left: 0; right: 0; color: #88a8b7; font: 7px/1.4 Consolas,monospace; letter-spacing: .09em; text-align: center; }
.portal-page .gateway-desktop { inset: 41px 8% 19px 1%; }
.portal-page .gateway-window { overflow: hidden; width: 100%; max-height: 225px; border: 1px solid #648aa885; border-radius: 10px; background: #0a1320; box-shadow: 0 20px 35px #0006,0 0 35px #5bb4d513; }
.portal-page .gateway-window-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 25px; padding: 0 10px; background: #192f43; color: #afc3d6; font-size: 7px; }
.portal-page .gateway-window-dots { display: flex; gap: 4px; }
.portal-page .gateway-window-dots i { display: block; width: 4px; height: 4px; border-radius: 50%; background: #7e94a9; }
.portal-page .gateway-window-lock { color: #85d2be; font: 7px Consolas,monospace; }
.portal-page .gateway-window-address { width: 35%; height: 3px; border-radius: 2px; background: #8bb9d238; }
.portal-page .gateway-window>img { display: block; width: 100%; height: auto; }
.portal-page .gateway-phone { display: grid; place-items: center; inset: auto -1% 7px auto; width: 24%; max-width: 128px; }
.portal-page .gateway-phone-shell { position: relative; padding: 6px; border: 1px solid #719bb0; border-radius: 17px; background: #081622; box-shadow: -11px 14px 30px #0008; }
.portal-page .gateway-phone-shell img { display: block; width: 100%; height: auto; border-radius: 11px; }
.portal-page .gateway-phone-speaker { position: absolute; z-index: 1; top: 6px; left: 34%; width: 32%; height: 5px; border-radius: 0 0 7px 7px; background: #081622; }
.portal-page .gateway-path-bottom { position: relative; z-index: 3; margin-top: auto; padding-top: 16px; }
.portal-page .gateway-entry { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 54px; padding: 14px 19px; border: 1px solid #90f2df80; border-radius: 8px; background: #7de3d3; color: #072b30; font-size: 13px; font-weight: 650; transition: transform 160ms var(--portal-ease),background-color 160ms ease; }
.portal-page .gateway-software .gateway-entry { border-color: #b6e4ff80; background: #b5d9f1; color: #102b3f; }
.portal-page .gateway-entry>span { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #082c3526; border-radius: 50%; font-size: 19px; font-weight: 400; line-height: 1; transition: transform 180ms var(--portal-ease); }
.portal-page .gateway-entry:active { transform: scale(.98); }
.portal-page .gateway-path-bottom>p { min-height: 44px; display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 6px; color: #9fbbc4; font-size: 10px; text-align: center; line-height: 1.6; }
.portal-page .gateway-signin { display: inline-flex; gap: 8px; align-items: center; justify-content: center; min-height: 44px; color: #b6cad9; font-size: 11px; }
.portal-page .gateway-contact { padding-block: 48px 32px; }
.portal-page .gateway-contact-intro { display: flex; justify-content: space-between; align-items: center; gap: 32px; margin-bottom: 24px; }
.portal-page .gateway-contact h2 { font-size: clamp(23px,2.4vw,30px); font-weight: 550; letter-spacing: -.035em; }
.portal-page .gateway-contact-intro p { max-width: 490px; color: #96a9b6; font-size: 12px; line-height: 1.8; }
.portal-page .gateway-contact-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.portal-page .gateway-contact-card { display: grid; grid-template-columns: 46px minmax(0,1fr) 32px; align-items: center; gap: 18px; padding: 26px; min-height: 148px; border: 1px solid #375c605e; border-radius: 14px; background: linear-gradient(125deg,#11292b,#0c1a22); color: #8ce6d8; transition: border-color 180ms ease,background-color 180ms ease; }
.portal-page .gateway-contact-system { background: linear-gradient(125deg,#13293b,#0d1c2b); border-color: #385b785e; color: #a2d4f5; }
.portal-page .gateway-contact-icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid #86d9cc38; border-radius: 12px; background: #8ee6d30a; }
.portal-page .gateway-contact-system .gateway-contact-icon { border-color: #9bcbea38; background: #9bcbea0a; }
.portal-page .gateway-contact-copy { display: grid; gap: 8px; }
.portal-page .gateway-contact-copy strong { color: #e1eef1; font-size: 17px; line-height: 1.35; font-weight: 550; letter-spacing: -.02em; }
.portal-page .gateway-contact-copy small { color: #9fb4c0; font-size: 12px; line-height: 1.6; }
.portal-page .gateway-contact-copy>span { margin-top: 5px; font-size: 11px; font-weight: 600; line-height: 1.6; }
.portal-page .gateway-contact-arrow { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #8fcbbc38; border-radius: 50%; font-size: 19px; }
.portal-page .gateway-contact-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 28px; margin-top: 22px; }
.portal-page .gateway-contact-details { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; list-style: none; margin: 0; padding: 0; color: #91aab5; font-size: 10px; line-height: 1.7; }
.portal-page .gateway-contact-details li::before { content: ''; display: inline-block; width: 3px; height: 3px; margin-right: 7px; border-radius: 50%; background: #70bbba; vertical-align: middle; }
.portal-page .gateway-instagram { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 10px 14px; border: 1px solid #515b795c; border-radius: 9px; background: #141b2a; color: #c2cfe1; font-size: 10px; line-height: 1.5; transition: border-color 180ms ease,background-color 180ms ease; }
.portal-page .gateway-instagram-icon { flex: 0 0 20px; color: #e5acdd; }
.portal-page .gateway-contact-card:focus-visible,.portal-page .gateway-instagram:focus-visible { outline: 2px solid #9de8e0; outline-offset: 4px; }
.portal-page .gateway-contact-card:active,.portal-page .gateway-instagram:active { border-color: #c3ede7; }
.portal-page .site-footer { padding-block: 23px; }
.portal-page .site-footer .lab-brand img { width: 158px; }
@media (hover:hover) and (pointer:fine) {
  .portal-page .gateway-mouse-hint { display: flex; }
  .portal-page .gateway-path.is-active { border-color: #80e1cf88; }
  .portal-page .gateway-software.is-active { border-color: #9dcff99c; }
  .portal-page .gateway-entry:hover { background: #9aefdf; }
  .portal-page .gateway-software .gateway-entry:hover { background: #d0e9fa; }
  .portal-page .gateway-entry:hover>span { transform: rotate(45deg); }
  .portal-page .gateway-signin:hover { color: #edf8f8; text-decoration: underline; text-underline-offset: 4px; }
  .portal-page .gateway-contact-card:hover { border-color: #85dace94; }
  .portal-page .gateway-contact-system:hover { border-color: #a0d0f39c; }
  .portal-page .gateway-instagram:hover { border-color: #d49dce99; background-color: #231d30; }
  .portal-page .gateway-path.is-active .gateway-layer,.portal-page .gateway-path.is-active .gateway-glow { will-change: transform; }
}
@media (max-width:1100px) {
  .portal-page .gateway-path { padding-inline: 25px; }
  .portal-page .gateway-copy>p { min-height: 95px; }
  .portal-page .gateway-copy h2 { font-size: 38px; }
  .portal-page .gateway-contact-card { padding: 21px; gap: 14px; }
  .portal-page .gateway-scene-note { padding: 9px; font-size: 7px; }
  .portal-page .gateway-scene-note-left { left: 0; }
  .portal-page .gateway-phone { width: 26%; }
  .portal-page .gateway-orbit-outer { width: 330px; }
}
@media (max-width:760px) {
  .portal-page .gateway { width: calc(100% - 32px); padding-top: 34px; }
  .portal-page .gateway-intro { align-items: start; flex-direction: column; gap: 16px; margin: 0 5px 26px; }
  .portal-page .gateway-intro-note>p { font-size: 13px; }
  .portal-page .gateway-intro-note>p br { display: none; }
  .portal-page .gateway-mouse-hint { display: none; }
  .portal-page .gateway-paths { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .portal-page .gateway-path { padding: 25px 24px 16px; border-radius: 17px; }
  .portal-page .gateway-path-top { margin-bottom: 24px; }
  .portal-page .gateway-copy h2 { font-size: 38px; }
  .portal-page .gateway-copy>p { min-height: 0; max-width: 500px; font-size: 13px; }
  .portal-page .gateway-art { height: 265px; margin-top: 13px; }
  .portal-page .gateway-board .repair-board { height: 250px; }
  .portal-page .gateway-board .repair-board-stage { height: 217px; }
  .portal-page .gateway-phone { width: 23%; max-width: 112px; }
  .portal-page .gateway-desktop { inset: 46px 10% 15px 3%; }
  .portal-page .gateway-scene-note-right { top: 7px; }
  .portal-page .gateway-scene-note-left { bottom: 20px; left: 5%; }
  .portal-page .gateway-contact { padding-block: 32px; }
  .portal-page .gateway-contact-intro { align-items: start; flex-direction: column; gap: 12px; }
  .portal-page .gateway-contact-links { grid-template-columns: minmax(0,1fr); }
  .portal-page .gateway-contact-copy strong { font-size: 16px; }
  .portal-page .gateway-contact-footer { align-items: start; flex-direction: column; }
}
@media (max-width:380px) {
  .portal-page .gateway-path { padding-inline: 19px; }
  .portal-page .gateway-category { gap: 7px; font-size: 10px; }
  .portal-page .gateway-index { font-size: 9px; }
  .portal-page .gateway-copy h2 { font-size: 33px; }
  .portal-page .gateway-path-bottom>p { display: block; padding-top: 8px; }
  .portal-page .gateway-contact-card { grid-template-columns: 38px minmax(0,1fr) 26px; padding: 17px; gap: 11px; }
  .portal-page .gateway-contact-icon { width: 38px; height: 38px; border-radius: 10px; }
  .portal-page .gateway-contact-arrow { width: 26px; height: 26px; font-size: 17px; }
  .portal-page .gateway-phone { width: 29%; }
  .portal-page .gateway-scene-note-right { right: 3%; }
}
@media (max-width:760px) and (hover:hover) and (pointer:fine) {
  .portal-page .gateway-mouse-hint { display: flex; }
}
@media (prefers-reduced-motion:reduce) {
  .portal-page .gateway-entry,.portal-page .gateway-entry>span,.portal-page .gateway-contact-card,.portal-page .gateway-instagram { transition: none; }
  .portal-page .gateway-entry:active,.portal-page .gateway-entry:hover>span { transform: none; }
  .portal-page .gateway-mouse-hint,.portal-page .gateway-glow { display: none; }
  .portal-page .gateway-layer { transform: none!important; }
}
