/* footprint.broker - Isometric Cartographic Intelligence */
/* Palette: Light Table Black #1B2432 | Acetate Panel #2C3E50 | Grid Line #3A4A5C | Border Steel #4A6274 | Analyst Red #C45D3E | Clearance Amber #D4A03C | Readout Green #5B8C6A | Briefing White #E8E4DC */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
    --lt-black:#1B2432;
    --acetate:#2C3E50;
    --grid:#3A4A5C;
    --steel:#4A6274;
    --red:#C45D3E;
    --amber:#D4A03C;
    --green:#5B8C6A;
    --white:#E8E4DC;
    --ease-iso:cubic-bezier(0.25,0.1,0.25,1.0);
}

html{scroll-behavior:smooth}

body{
    background:var(--lt-black);
    color:var(--white);
    font-family:'IBM Plex Mono',monospace;
    font-weight:400;
    font-size:14px;
    line-height:1.65;
    letter-spacing:0.02em;
    overflow-x:hidden;
    min-height:100vh;
}

/* Isometric grid background */
body::before{
    content:'';
    position:fixed;
    top:0;left:0;
    width:200%;height:200%;
    background:
        repeating-linear-gradient(
            30deg,
            transparent,
            transparent 39px,
            rgba(58,74,92,0.12) 39px,
            rgba(58,74,92,0.12) 40px
        ),
        repeating-linear-gradient(
            150deg,
            transparent,
            transparent 39px,
            rgba(58,74,92,0.12) 39px,
            rgba(58,74,92,0.12) 40px
        ),
        repeating-linear-gradient(
            90deg,
            transparent,
            transparent 39px,
            rgba(58,74,92,0.08) 39px,
            rgba(58,74,92,0.08) 40px
        );
    pointer-events:none;
    z-index:0;
    animation:gridDrift 60s linear infinite;
}

@keyframes gridDrift{
    0%{transform:translate(0,0)}
    100%{transform:translate(-1px,-1px)}
}

/* FOOTPRINT watermark */
.watermark{
    position:fixed;
    top:50%;left:50%;
    transform:translate(-50%,-50%) rotate(-30deg);
    font-family:'Saira Extra Condensed',sans-serif;
    font-size:clamp(3rem,8vw,7rem);
    font-weight:800;
    letter-spacing:0.15em;
    color:var(--steel);
    opacity:0.15;
    pointer-events:none;
    z-index:1;
    white-space:nowrap;
    transition:opacity 0.5s var(--ease-iso);
}

/* Classification header */
.classification-label{
    position:fixed;
    top:0;left:0;
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0.5rem 1rem;
    z-index:100;
    border-bottom:1px solid rgba(58,74,92,0.3);
    background:rgba(27,36,50,0.92);
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
}

.cls-domain{
    font-size:11px;
    font-weight:600;
    letter-spacing:0.04em;
    color:var(--white);
    border:2px double var(--steel);
    border-radius:3px;
    padding:2px 8px;
}

.cls-level{
    font-size:8px;
    letter-spacing:0.06em;
    color:var(--steel);
}

/* Quadrant grid */
.quadrant{
    position:relative;
    min-height:100vh;
    padding:4rem 2rem 2rem;
    z-index:2;
    display:flex;
    flex-direction:column;
    gap:2rem;
}

.quad-nw{
    padding-top:5rem;
}

/* Panel base */
.panel{
    position:relative;
    background:rgba(44,62,80,0.85);
    border:1px solid var(--steel);
    padding:clamp(1.2rem,2.5vw,2rem);
    max-width:640px;
    drop-shadow:4px 4px 0px rgba(0,0,0,0.3);
    filter:drop-shadow(4px 4px 0px rgba(0,0,0,0.3));
    transition:box-shadow 0.4s var(--ease-iso),opacity 0.5s var(--ease-iso),transform 0.5s var(--ease-iso);
}

/* Acetate texture overlay on panels */
.panel::before{
    content:'';
    position:absolute;
    top:0;left:0;
    width:100%;height:100%;
    background:repeating-linear-gradient(
        30deg,
        transparent,
        transparent 3px,
        rgba(74,98,116,0.03) 3px,
        rgba(74,98,116,0.03) 4px
    );
    pointer-events:none;
    z-index:1;
}

.panel:hover{
    box-shadow:0 0 12px rgba(196,93,62,0.15);
}

/* Panel reveal animation */
.panel-reveal{
    opacity:0;
    transform:translate(-20px,12px);
}

.panel-reveal.visible{
    opacity:1;
    transform:translate(0,0);
}

/* Stagger children */
.panel-reveal:nth-child(2){transition-delay:50ms}
.panel-reveal:nth-child(3){transition-delay:100ms}

/* Coordinate labels */
.coord-label{
    position:absolute;
    top:6px;left:8px;
    font-size:9px;
    font-weight:600;
    color:var(--steel);
    letter-spacing:0.04em;
    z-index:2;
    cursor:pointer;
    transition:color 0.3s var(--ease-iso);
}

.coord-label.flash{
    color:var(--amber);
}

/* Crosshair markers */
.crosshair{
    position:absolute;
    font-size:10px;
    color:var(--steel);
    opacity:0.4;
    pointer-events:none;
    line-height:1;
    z-index:2;
}

.crosshair.pulse{
    animation:chPulse 4s ease-in-out infinite;
}

@keyframes chPulse{
    0%,100%{opacity:0.3}
    50%{opacity:0.5}
}

.ch-tl{top:4px;left:4px}
.ch-tr{top:4px;right:4px}
.ch-bl{bottom:4px;left:4px}
.ch-br{bottom:4px;right:4px}

/* Panel heading */
.panel-heading{
    font-family:'IBM Plex Mono',monospace;
    font-size:16px;
    font-weight:600;
    letter-spacing:0.02em;
    line-height:1.3;
    color:var(--white);
    margin-bottom:0.75rem;
    padding-top:0.5rem;
}

.panel-body{
    font-size:14px;
    line-height:1.65;
    color:var(--white);
}

/* Quadrant specific accents */
.quad-nw .panel{
    border-left:2px solid var(--red);
}

.quad-sw .panel{
    border-left:2px solid var(--red);
}

/* Status board */
.status-board{
    max-width:360px;
}

.board-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2px;
}

.board-cell{
    background:rgba(27,36,50,0.7);
    padding:0.4rem 0.5rem;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border:1px solid rgba(58,74,92,0.3);
}

.cell-code{
    font-size:11px;
    font-weight:600;
    letter-spacing:0.04em;
    color:var(--steel);
}

.cell-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    display:inline-block;
}

.dot-green{background:var(--green)}
.dot-amber{background:var(--amber)}
.dot-red{background:var(--red)}

/* Footprint silhouette SVGs */
.footprint-silhouette{
    position:absolute;
    width:clamp(120px,20vw,200px);
    height:auto;
    z-index:1;
    pointer-events:none;
}

.fp-satellite{
    bottom:2rem;
    right:2rem;
    animation:fpRotate 120s linear infinite;
}

@keyframes fpRotate{
    0%{transform:rotate(0deg)}
    100%{transform:rotate(360deg)}
}

.fp-path{
    transition:fill 0.4s var(--ease-iso);
}

.footprint-silhouette:hover .fp-path{
    fill:rgba(196,93,62,0.08);
    stroke-dasharray:3 6;
}

/* Overlap diagram */
.overlap-diagram{
    width:clamp(160px,30vw,240px);
    height:auto;
    margin:1rem 0;
}

/* Leader lines */
.leader-lines{
    position:absolute;
    bottom:0;left:0;
    width:100%;
    height:200px;
    pointer-events:none;
    z-index:3;
}

.leader{
    stroke-dasharray:200;
    stroke-dashoffset:200;
    transition:stroke-dashoffset 0.6s ease-out;
}

.leader.drawn{
    stroke-dashoffset:0;
}

/* Archive panel */
.archive-panel{
    opacity:0.7;
    max-width:400px;
}

.archive-panel .panel-body{
    font-size:11px;
    line-height:1.5;
    color:var(--steel);
}

/* Archive crosshair */
.archive-crosshair{
    position:absolute;
    bottom:3rem;right:3rem;
    width:100px;height:100px;
    z-index:1;
    animation:archRotate 240s linear infinite;
}

@keyframes archRotate{
    0%{transform:rotate(0deg)}
    100%{transform:rotate(360deg)}
}

/* Responsive: single column on mobile */
@media(max-width:768px){
    .quadrant{
        padding:3rem 1rem 1.5rem;
    }
    .panel{
        max-width:100%;
    }
    .status-board{
        max-width:100%;
    }
    .board-grid{
        grid-template-columns:repeat(3,1fr);
    }
    .footprint-silhouette{
        opacity:0.5;
    }
    .leader-lines{
        display:none;
    }
    .archive-crosshair{
        width:60px;height:60px;
        bottom:1rem;right:1rem;
    }
    .classification-label{
        flex-direction:column;
        gap:0.2rem;
        text-align:center;
    }
    .watermark{
        font-size:clamp(2rem,10vw,4rem);
    }
}
