/* Loaded only by the Tech Hub home template. */
:root { --primary-color:#8cebc9; --secondary-color:#e8f1f4; --light-bg:#111f2a; }
body { background:#09131d; color:#e8f1f4; font-family: 'Segoe UI','Noto Sans JP',Meiryo,sans-serif; }
body > .navbar.bg-dark { background:#09131d !important; border-bottom:1px solid #26333d; padding:20px 0; }
.navbar-brand { font-size:24px; font-weight:750; letter-spacing:-1px; }
.navbar-brand::after { content:'.'; color:#8cebc9; }
#footer.bg-dark { background:#09131d !important; border-top:1px solid #26333d; padding:32px 0 16px !important; font-size:12px; line-height:2.4; }
.techhub-home { --line:#293843; --muted:#a9bac7; }
.techhub-home .header-section { position:relative; display:grid; grid-template-columns:1.15fr 1fr; align-items:center; min-height:570px; padding:64px 0 45px; margin:0; background:radial-gradient(ellipse at 82% 50%,#163f423d,transparent 55%); border-radius:0; box-shadow:none; }
.eyebrow { font-family:Consolas,monospace; font-size:11px; letter-spacing:2px; color:#8cebc9; margin-bottom:26px; }
.eyebrow > span { display:inline-block; width:6px; height:6px; background:#8cebc9; border-radius:50%; margin-right:10px; box-shadow:0 0 12px #8cebc9; }
.hero-copy { position:relative; z-index:1; }
.hero-copy h1 { font-size:clamp(32px,3.8vw,54px); font-weight:750; letter-spacing:-.055em; line-height:1.5; margin-bottom:24px; }
.hero-copy h1 em { font-style:normal; color:#8cebc9; }
.hero-description { color:var(--muted); font-size:14px; line-height:2; }
.hero-actions { display:flex; align-items:center; gap:25px; margin-top:32px; flex-wrap:wrap; }
.hero-actions a { font-size:13px; font-weight:600; text-decoration:none; }
.hero-primary { display:flex; gap:30px; background:#8cebc9; color:#09271e; padding:16px 22px; border:1px solid #8cebc9; border-radius:4px; transition:background .2s; }
.hero-primary:hover { background:#b3ffe4; color:#09271e; }
.hero-secondary { color:#e8f1f4; }
.hero-secondary span { margin-left:15px; }
.hero-secondary:hover { color:#8cebc9; }
.hero-account { margin-top:24px; color:var(--muted); }
.hero-account:empty { display:none; }
.hero-account .lead,.hero-account h2 { font-size:16px; }
.hub-visual { position:relative; height:430px; background-image:linear-gradient(#8cebc908 1px,transparent 1px),linear-gradient(90deg,#8cebc908 1px,transparent 1px); background-size:32px 32px; mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent); }
.orbital { position:absolute; top:50%; left:50%; width:310px; height:310px; margin:-155px; border:1px solid #81e8ce40; border-radius:50%; transform:rotate(-32deg) scaleY(.55); }
.orbital-two { transform:rotate(35deg) scaleY(.65); border-color:#81e8ce70; }
.orbital-three { transform:rotate(90deg) scaleY(.63); box-shadow:0 0 50px #5dd3bc0b; }
.orbital-one::after { content:''; position:absolute; top:40px; left:40px; width:8px; height:8px; background:#b5ffe3; border-radius:50%; box-shadow:0 0 18px #8cebc9; }
.hub-core { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%) rotate(-8deg); display:flex; flex-direction:column; justify-content:center; align-items:center; width:148px; height:148px; border:1px solid #8cebc98c; border-radius:30px; background:linear-gradient(140deg,#294f50,#102630 65%); box-shadow:12px 18px 0 #10252d,13px 19px 0 #8cebc92e,0 0 70px #8cebc918,inset 0 1px 15px #8cebc918; }
.hub-core > span { font-size:15px; letter-spacing:7px; padding-left:7px; }
.hub-core strong { font-size:39px; line-height:1.2; letter-spacing:-2px; }
.core-dot { color:#8cebc9; }
.hub-node { position:absolute; padding:12px; display:flex; align-items:center; gap:10px; background:#0d202be8; border:1px solid #35515c; border-radius:5px; box-shadow:0 8px 25px #0003; }
.hub-node i { color:#8cebc9; font-size:22px; }
.hub-node span { font:9px Consolas,monospace; letter-spacing:1px; }
.node-voice { top:55px; right:12px; }
.node-business { left:4px; bottom:90px; }
.node-knowledge { right:0; bottom:65px; }
.visual-coordinate { position:absolute; bottom:9px; left:50%; transform:translateX(-50%); white-space:nowrap; font:8px Consolas,monospace; letter-spacing:1px; color:#78949e; }
.platform-strip { display:flex; justify-content:space-between; gap:18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:20px 0; margin-bottom:64px; color:#94aab8; font:10px Consolas,monospace; letter-spacing:1.5px; }
.platform-strip b { color:#47606a; padding:0 14px; }
.techhub-home > .container { padding:0; }
.techhub-home section { scroll-margin-top:24px; }
.techhub-home .section-title { color:#edf5f6; font-size:23px; font-weight:650; letter-spacing:-.04em; margin-bottom:25px; }
.techhub-home .section-title::after { display:none; }
.techhub-home section > .eyebrow { margin-bottom:12px; }
.techhub-home .section-lead { font-size:13px; line-height:1.9; color:var(--muted); }
.techhub-home .service-card,.techhub-home .blog-card,.techhub-home .sidebar,.techhub-home .card { background:#101f2b; border:1px solid var(--line); border-radius:8px; color:#e8f1f4; box-shadow:none; }
.techhub-home .service-card:hover,.techhub-home .blog-card:hover { transform:translateY(-4px); border-color:#638d89; box-shadow:0 12px 30px #0002; }
.service-art { position:relative; height:155px; overflow:hidden; display:flex; align-items:center; justify-content:center; border-bottom:1px solid var(--line); background:radial-gradient(ellipse at 50% 120%,#245a5366,transparent 70%),repeating-linear-gradient(90deg,transparent 0 35px,#8cebc909 35px 36px); }
.service-art > i { font-size:65px; color:#8cebc9; filter:drop-shadow(0 0 20px #8cebc93b); }
.art-voice { background:radial-gradient(ellipse at 50% 120%,#234b7866,transparent 70%),repeating-linear-gradient(90deg,transparent 0 35px,#8cebc909 35px 36px); }
.art-voice > i { color:#91bfe9; font-size:85px; }
.art-label { position:absolute; left:18px; top:15px; font:9px Consolas,monospace; color:#91adb7; letter-spacing:1px; }
.art-index { position:absolute; bottom:12px; right:18px; font:11px Consolas,monospace; color:#91adb7; }
.techhub-home .card-body { padding:25px; }
.techhub-home .card-title { color:#ecf6f4; font-size:24px; letter-spacing:-.5px; }
.card-title small { display:block; margin-top:7px; color:#a9bac7; font-size:12px; letter-spacing:0; }
.techhub-home .card-text { font-size:13px; line-height:1.9; color:var(--muted); min-height:75px; }
.techhub-home .btn { border-radius:4px; font-size:12px; padding:9px 14px; }
.techhub-home .btn-outline-primary { color:#8cebc9; border-color:#477168; }
.techhub-home .btn-outline-primary:hover { color:#091b17; background:#8cebc9; border-color:#8cebc9; }
.techhub-home .btn-outline-secondary { color:#b8c9d4; border-color:#485964; }
.techhub-home .btn-outline-secondary:hover { background:#263c4c; }
.techhub-home .blog-title .text-dark { color:#e8f1f4 !important; }
.techhub-home .blog-card .blog-title { font-size:14px; line-height:1.7; height:3rem; }
.techhub-home .blog-card .blog-summary { color:var(--muted); font-size:12px; line-height:1.8; height:4rem; }
.techhub-home .blog-meta { font-size:10px; color:#a9bac7; }
.techhub-home .source-badge { font-size:9px; color:#b9d6d3; background:#243e48; }
.techhub-home .thumb { height:120px; filter:saturate(.65); }
.techhub-home .sidebar { padding:21px; }
.techhub-home .sidebar-title { font-size:14px; color:#e8f1f4; }
.techhub-home .sidebar p,.techhub-home .sidebar-list { font-size:12px; line-height:1.9; color:var(--muted); }
.techhub-home .sidebar-list li { border-color:var(--line); }
.techhub-home .sidebar-list a { color:#b9ccd5; }
.techhub-home .text-muted { color:#a9bac7 !important; }
.techhub-home .alert-light { background:#101f2b; color:#b9ccd5; border-color:var(--line); font-size:13px; }
.techhub-home .alert a,.techhub-home h5 a { color:#8cebc9; }
.techhub-home .form-control { background:#101f2b; border:1px solid #425967; color:#edf5f6; border-radius:4px; font-size:12px; padding:11px; min-width:0; }
.techhub-home .form-control::placeholder { color:#a9bac7; }
.techhub-home .input-group { flex-wrap:nowrap; }
.techhub-home .input-group > dl { min-width:0; margin:0; flex:1; }
.techhub-home .input-group dt { font-size:12px; }
.techhub-home .search-btn { background:#8cebc9; border-color:#8cebc9; color:#09271e; }
.techhub-home a:focus-visible,.techhub-home button:focus-visible,.techhub-home input:focus-visible { outline:2px solid #b0ffdf; outline-offset:4px; box-shadow:none; }
@media(min-width:992px) { .techhub-home > .container > .row { --bs-gutter-x:2.5rem; } }
@media(max-width:991px) { .hero-copy h1 { font-size:36px; } .hub-visual { transform:scale(.9); } .techhub-home .header-section { min-height:490px; } .platform-strip { flex-direction:column; } }
@media(max-width:767px) { .techhub-home .header-section { grid-template-columns:1fr; padding:45px 4px 20px; } .hero-copy h1 { font-size:clamp(29px,7.5vw,44px); } .hub-visual { height:340px; max-width:420px; width:100%; margin:10px auto 0; transform:none; } .node-voice { top:15px; } .node-business { bottom:55px; } .node-knowledge { bottom:23px; } .visual-coordinate { bottom:0; font-size:7px; } .platform-strip { margin-bottom:40px; font-size:8px; letter-spacing:.8px; } .platform-strip b { padding:0 5px; } .techhub-home .section-title { font-size:21px; } .hero-actions { gap:20px; } .techhub-home .card-text { min-height:0; } }
@media(prefers-reduced-motion:reduce) { .techhub-home *, .techhub-home *::before, .techhub-home *::after { transition:none !important; scroll-behavior:auto !important; } }
