/* Approved Industrial home: mechanical frames belong to decorative layers only. */
#welcome,#welcome-ssr { border:0;background:transparent;box-shadow:none;padding:0; }
.welcome-shell { position:relative; isolation:isolate; margin-bottom:32px; display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);gap:32px;align-items:center;padding:32px; }
.welcome-label { color:var(--hv-link);font-size:12px;font-weight:600;letter-spacing:.06em;margin:0 0 24px; }
.welcome-copy h1 { font-size:clamp(36px,4vw,60px);line-height:1.06;margin:0 0 24px;letter-spacing:-.04em;text-wrap:balance; }
.welcome-lead { font-size:18px;line-height:1.55;max-width:42ch;color:var(--hv-muted);margin:0 0 24px; }
.welcome-caption { color:var(--hv-muted);font-size:14px;line-height:1.55;max-width:70ch; }
.welcome-actions { display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin:0 0 16px; }
.welcome-primary { display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:12px 20px;border-radius:var(--hv-radius);background:var(--hv-primary);color:var(--hv-primary-ink);font-size:14px;font-weight:600;max-width:100%; }
.welcome-primary:hover { background:color-mix(in srgb,var(--hv-primary) 90%,var(--hv-link));text-decoration:none; }
.welcome-actions>a:not(.welcome-primary) { display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:500; }
.welcome-core { margin:0;min-width:0; }
.welcome-core img { display:block;width:100%;height:auto;max-height:440px;object-fit:contain; }
.welcome-tasks { margin-top:12px; padding:24px; border:1px solid var(--hv-line); border-radius:var(--hv-radius); background:var(--hv-surface); box-shadow:var(--hv-shadow); }
.welcome-tasks>h2,.welcome-map-head h2 { font-size:clamp(26px,2.5vw,34px); }
.welcome-tasks>.welcome-caption { margin:12px 0 24px; }
.welcome-spaces { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px; }
.welcome-space { box-shadow:inset 0 1px 0 var(--hv-highlight); background:var(--hv-panel);border:1px solid var(--hv-line);border-radius:var(--hv-radius);padding:16px 16px 24px;display:flex;flex-direction:column;min-width:0; }
.welcome-space>svg { display:block; width:32px; height:32px; flex-shrink:0; margin-bottom:16px; fill:none; stroke:var(--hv-link); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.welcome-space h3 { font-size:21px;font-weight:600;line-height:1.25;text-wrap:initial; }
.welcome-space>p { font-size:14px;line-height:1.5;color:var(--hv-muted);margin:12px 0 24px; }
.welcome-steps { list-style:none;counter-reset:step;padding:0;margin:0 0 24px; }
.welcome-steps li { counter-increment:step;display:flex;align-items:baseline;gap:8px;font-size:13px;line-height:1.45;margin:8px 0;color:var(--hv-muted); }
.welcome-steps li:before { content:counter(step);display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--hv-radius);background:var(--hv-active);color:var(--hv-link);font-size:11px;font-weight:600; }
.task-action { display:flex;align-items:center;min-height:44px;font-size:14px;font-weight:600;margin-top:auto; }
.task-action:after { content:'→';margin-left:8px; }
.welcome-map { box-shadow:var(--hv-shadow); margin:48px 0 32px;padding:24px;background:var(--hv-surface);border:1px solid var(--hv-line);border-radius:var(--hv-radius); }
.welcome-map-head .welcome-label { margin-bottom:12px; }
.welcome-map-head>.welcome-caption { margin:16px 0 24px; }
.task-map-layout { display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:32px; }
.task-map-diagram { position:relative;min-height:340px;background:var(--hv-inset);border:1px solid var(--hv-line);border-radius:var(--hv-radius); }
.task-map-diagram svg { position:absolute;inset:0;width:100%;height:100%; }
.task-map-diagram path { stroke:var(--hv-line);stroke-width:2;fill:none; }
.task-map-diagram path.selected { stroke:var(--hv-link);stroke-width:3; }
.task-map-center { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid var(--hv-line);border-radius:var(--hv-radius);width:96px;height:96px;display:flex;align-items:center;justify-content:center;font-size:16px;letter-spacing:.08em;font-weight:600;background:var(--hv-surface);box-shadow:0 0 0 8px var(--hv-inset); }
.task-map-node { position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);min-width:110px;max-width:145px;padding:8px 12px;font-size:13px;box-shadow:none;background:var(--hv-surface); }
.task-map-node:active:not(:disabled) { transform:translate(-50%,-50%); }
.task-map-info { border-left:1px solid var(--hv-line);padding:24px 0 24px 32px;align-self:center; }
.task-map-info h3 { font-size:24px; }
.task-map-info>p { color:var(--hv-muted);font-size:14px;line-height:1.55;margin:16px 0 24px; }
.task-map-info .welcome-primary { margin-top:8px; }
.welcome-federation { margin-top:24px; border:1px solid var(--hv-line); border-radius:var(--hv-radius); background:var(--hv-surface); display:flex;align-items:center;justify-content:space-between;gap:32px;padding:24px; }
.welcome-federation>div { max-width:72ch; }
.welcome-federation h2 { font-size:26px; }
.welcome-federation .welcome-label { margin-bottom:12px; }
.welcome-federation p:not(.welcome-label) { color:var(--hv-muted);font-size:14px; }
.welcome-federation>a { min-height:44px;display:inline-flex;align-items:center;flex-shrink:0;font-size:14px;font-weight:600; }
.welcome-boundary { margin:16px 0;padding:16px 0;border:0; }
.welcome-boundary p { max-width:88ch;color:var(--hv-muted);font-size:14px; }
.welcome-space-links { display:flex;flex-wrap:wrap;gap:12px 24px; }
.welcome-space-links>a { display:inline-flex;align-items:center;min-height:44px;font-size:14px; }
/* Decorative chamfer: the content, hit targets and focus rings stay rectangular and visible. */
.welcome-shell::before,.welcome-shell::after { content:''; position:absolute; pointer-events:none; clip-path:polygon(var(--hv-cut) 0,100% 0,100% calc(100% - var(--hv-cut)),calc(100% - var(--hv-cut)) 100%,0 100%,0 var(--hv-cut)); }
.welcome-shell::before { inset:0; z-index:-2; background:var(--hv-seam); }
.welcome-shell::after { inset:1px; z-index:-1; background:linear-gradient(140deg,var(--hv-raised),var(--hv-panel)); }
@media(max-width:1150px) {
 .welcome-shell { grid-template-columns:1fr 1fr;gap:24px; }.welcome-copy h1 { font-size:40px; }.welcome-lead { font-size:16px; }
 .welcome-spaces { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .task-map-layout { grid-template-columns:1fr;gap:16px; }.task-map-info { border-left:0;border-top:1px solid var(--hv-line);padding:24px 0 0; }
 .task-map-diagram { min-height:320px; }.task-map-info .welcome-steps { display:flex;flex-wrap:wrap;gap:16px; }
}
@media(max-width:820px) {
 .welcome-shell { grid-template-columns:1fr; }.welcome-copy h1 { max-width:20ch; }.welcome-core { max-width:650px; }.welcome-core img { max-height:340px;object-fit:contain; }
 .welcome-federation { flex-direction:column;align-items:flex-start;gap:8px; }
}
@media(max-width:640px) {
  .welcome-shell { padding:24px 16px;gap:16px; }.welcome-copy h1 { font-size:36px; }.welcome-label { font-size:12px;letter-spacing:.035em;margin-bottom:16px; }
 .welcome-lead { font-size:16px;margin-bottom:24px; }.welcome-actions { gap:8px 20px; }.welcome-core img { max-height:280px;object-fit:contain; }
 .welcome-tasks { padding:24px 16px; }
 .welcome-federation { padding:24px 16px; }
 .welcome-spaces { grid-template-columns:1fr;gap:16px; }.welcome-space { padding:16px; }.welcome-space h3 { font-size:22px; }
 .welcome-map { margin-top:32px;padding:24px 16px; }.welcome-map-head h2 { font-size:26px; }
 .task-map-diagram { min-height:290px; }.task-map-node { min-width:0;max-width:100px;width:31%;font-size:12px;padding:8px 6px; }.task-map-center { width:76px;height:76px;font-size:13px; }
 .task-map-info .welcome-steps { display:block; }.welcome-federation h2 { font-size:24px; }
}
@media(prefers-reduced-motion:reduce) { .task-map-node { transition:none; } }
@media(forced-colors:active) { .task-map-diagram path { stroke:CanvasText; }.task-map-diagram path.selected { stroke:Highlight; }.task-map-node[aria-pressed=true] { outline:2px solid Highlight; } }
