.photo{position:relative;background-image:linear-gradient(180deg,transparent 54%,rgba(2,21,31,.76)),var(--photo);background-size:cover;background-position:var(--focus,center);background-repeat:no-repeat}
.photo-location{position:absolute;bottom:7px;left:10px;right:8px;color:#fff;font-size:.69rem;line-height:1.15;font-weight:700;text-shadow:0 1px 5px #001921}
.active-card .photo-location{font-size:.6rem;bottom:4px}
.piece{position:relative;border:1px solid #587982;border-radius:15px;overflow:hidden;box-shadow:0 10px 25px #00111948}
.piece-kicker{font-size:.74rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800}
.table-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.55fr);gap:24px;align-items:start}
.table-board,.table-hand{display:grid;gap:22px;min-width:0}
.section-line{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:10px}
.section-line h2{font:600 1.35rem Fraunces,Georgia,serif;margin:0}
.section-line span{color:#a7c8c4;font-size:.86rem}
.status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.status-card{background:#153b47;min-height:129px;padding:13px;color:#eaf6f1;border-top:5px solid var(--accent)}
.status-card.critical{background:#593b37;border-color:#ffad79}
.status-main{display:flex;justify-content:space-between;align-items:end;gap:5px;margin:10px 0}
.status-main span{font:700 1.2rem Fraunces,Georgia,serif}
.status-main strong{font-size:2rem;line-height:1;color:var(--accent)}
.status-main small,.resource-card small{font:500 .75rem 'DM Sans',sans-serif;color:#b4caca}
.pips{display:flex;gap:3px;align-items:center}
.pips i{flex:1;height:6px;border:1px solid #718a8d;border-radius:4px}
.pips i.filled{background:var(--accent,#67c4bb);border-color:var(--accent,#67c4bb)}
.condition-caption{color:#a9cbc8;font-size:.75rem;margin-top:7px}
.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:9px}
.resource-card{background:#183a41;padding:12px;min-height:101px;display:flex;flex-direction:column;gap:3px}
.resource-card span{font-weight:700}.resource-card strong{font-size:1.5rem;color:#fff;margin-bottom:5px}
.resource-card .piece-kicker{color:#91bbb6}
.forecast-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.forecast-card{background:#133340;color:#fff;min-height:117px;display:flex}
.forecast-back{width:43%;background:#0b2733;border-right:2px solid #52958c;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5px}
.wave-mark{font:700 2.5rem Fraunces,Georgia,serif;color:#58d7c0;line-height:1}
.forecast-back span{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:#95c6c0}
.forecast-label{padding:12px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.forecast-label small{text-transform:uppercase;color:#8cd9cb;letter-spacing:.1em}
.forecast-label strong{font:600 1.05rem Fraunces,Georgia,serif}
.leader-card{background:#143542;display:grid;grid-template-columns:94px 1fr;border-color:var(--accent)}
.leader-symbol{background:var(--accent);color:#0b2d35;display:grid;place-items:center;font:700 1.9rem Fraunces,Georgia,serif;padding:10px;text-align:center}
.leader-body{padding:15px}.leader-body .piece-kicker{color:var(--accent)}
.leader-body h2{font:700 1.45rem Fraunces,Georgia,serif;margin:5px 0}
.leader-body p{color:#b7d0cd;line-height:1.4;margin:0 0 12px;font-size:.9rem}
.leader-power{padding:8px 0;color:#fff;font-weight:700;font-size:.84rem}
.leader-body button{background:var(--accent);border:0;border-radius:7px;padding:9px 12px;color:#062a30;font-weight:700;min-height:42px}
.leader-body button:disabled{background:#698886;color:#173b40}
.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.project-card{background:#e8eee6;color:#17363b;border-color:#a7c3b8;display:flex;flex-direction:column;min-height:385px}
.piece-art{height:117px;flex:none;border-bottom:4px solid var(--accent,#52c7ad)}
.project-content{padding:13px 15px 15px;display:flex;flex-direction:column;flex:1}
.project-content .piece-kicker{color:#396b6b}
.project-content .card-top{margin-bottom:7px}
.project-content h3{font:700 1.45rem/1.08 Fraunces,Georgia,serif;margin:2px 0 9px;letter-spacing:-.025em}
.project-content p{margin:0;font-size:.83rem;line-height:1.35;color:#365a5a}
.project-content .card-effect{margin:0 0 8px!important;padding:0;color:#126063!important}
.project-text{flex:1}
.ongoing-rule{background:#d9e6da;color:#204d50;padding:8px 9px;border-radius:7px;margin:9px 0;font-size:.79rem;line-height:1.3}
.ongoing-rule strong{display:block;text-transform:uppercase;font-size:.65rem;letter-spacing:.1em;margin-bottom:3px}
.project-content button{border:0;border-radius:8px;background:#123f48;color:#fff;min-height:43px;font-weight:700;margin-top:10px}
.project-content button:disabled{background:#b5c7bf;color:#456365}
.active-title{margin-bottom:-10px}
.active-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.active-card{background:#dfeae2;color:#153b40;border-color:#8fb4aa}
.active-card .piece-art{height:67px}
.active-content{padding:9px}
.active-content .piece-kicker{color:#40726b;font-size:.63rem}
.active-content h3{font:700 1.05rem/1.1 Fraunces,Georgia,serif;margin:5px 0}
.active-content p{font-size:.75rem;line-height:1.3;margin:0;min-height:40px}
.active-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}
.active-actions button{background:#154e52;color:#fff;border:0;border-radius:6px;padding:7px;font-size:.75rem;min-height:35px}
.active-actions button:disabled{background:#aabfba;color:#426061}
.active-actions button.subtle{background:transparent;color:#265a5d;border:1px solid #5d908a}
.empty-slot{grid-column:1/-1;border:1px dashed #54827f;background:#123743;color:#b5d1cb;padding:18px;text-align:center}
.effort-card{background:#16414a;border-color:#70b7ab;padding:14px}
.effort-card h3{font:700 1.35rem Fraunces,Georgia,serif;margin:6px 0}
.effort-card p{font-size:.89rem;line-height:1.4;margin:0 0 11px;color:#c7e0d9}
.effort-buttons{display:flex;gap:6px;flex-wrap:wrap}
.effort-buttons button{border:1px solid #80cabe;color:#f1fffa;background:#245963;border-radius:7px;padding:8px 10px;min-height:40px;font-size:.81rem;font-weight:700}
.effort-buttons button:disabled{opacity:.45}
.face-button{white-space:nowrap}
.intro-art{margin-top:25px;background:#123a46;max-width:580px}
.intro-art .piece-art{height:190px;border:0}
.intro-art>div:last-child{padding:11px 15px;color:#bde6dc;font-weight:700;letter-spacing:.04em}
.intro-card.piece{background:#e9eee7;color:#143d43;border-color:#93bdb0}
.intro-card.piece .piece-kicker{color:#33817a}
.intro-card.piece p,.intro-card.piece .small{color:#3e5e5b}
.intro-card.piece .segmented button{color:#e9f6ef}
.intro-card.piece .segmented button[aria-pressed=true]{color:#07242c}
.event-reveal{min-height:100vh;display:grid;grid-template-columns:58% 42%;background:#081a23;color:#fff;overflow:hidden}
.event-hero{min-height:100vh;animation:event-image 1s ease-out both}
.event-hero .photo-location{font-size:.85rem;bottom:24px;left:26px}
.event-copy{padding:clamp(25px,5vw,78px);display:flex;flex-direction:column;align-items:start;justify-content:center;border-left:7px solid var(--event-accent);animation:event-copy .55s ease-out both}
.event-copy .piece-kicker{color:var(--event-accent)}
.event-number{font:700 clamp(4rem,9vw,9rem)/1 Fraunces,Georgia,serif;color:#ffffff12;margin:16px 0 -16px}
.event-copy h1{font:700 clamp(3rem,5.5vw,6rem)/1 Fraunces,Georgia,serif;letter-spacing:-.05em;margin:0 0 18px}
.event-copy p{font-size:1.15rem;line-height:1.5;color:#d0dedb}
.event-copy button{margin-top:20px;background:var(--event-accent)}
@keyframes event-image{from{filter:brightness(.15);transform:scale(1.08)}to{filter:brightness(.85);transform:scale(1)}}
@keyframes event-copy{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}
.impact-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1fr);gap:22px}
.hazard-card{background:#e8eee7;color:#15383f}
.hazard-card .piece-art{height:235px;border-color:#e5ae73}
.hazard-body{padding:19px}.hazard-body h2{font:700 2rem Fraunces,Georgia,serif;margin:5px 0}
.hazard-body .note{font-size:.87rem}.hazard-body .note a{color:#116760}
.impact-layout .status-grid{margin-bottom:10px}
.next-button{margin-top:18px}
.score-wrap{display:grid;grid-template-columns:minmax(320px,1.4fr) minmax(240px,.6fr);gap:35px;align-items:center;padding:35px 0}
.score-card{padding:clamp(22px,4vw,40px);min-height:510px;background:#123c47;border:3px solid #57d8af}
.score-card.mixed{background:#484431;border-color:#e9bf75}.score-card.fragile{background:#4b3035;border-color:#f4927e}
.score-top{display:flex;justify-content:space-between;color:#d0e6dd}.score-top span{font-weight:800;font-size:1.3rem}
.score-card h1{font:700 clamp(3rem,6vw,5rem) Fraunces,Georgia,serif;letter-spacing:-.06em;margin:26px 0 6px}
.score-card p{font-size:1.06rem;color:#e0ece6}
.score-bars{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:30px 0}
.score-bars>div{display:grid;grid-template-columns:1fr auto;gap:7px;background:#071e2c82;border-radius:9px;padding:12px}
.score-bars b{color:var(--accent)}
.score-bars i{grid-column:1/-1;background:#547071;height:8px;border-radius:9px;overflow:hidden}
.score-bars em{display:block;height:100%;background:var(--accent)}
.score-footer{display:flex;gap:8px;flex-wrap:wrap}.score-footer span{border:1px solid #a1c5bd;border-radius:100px;padding:6px 10px}
.score-side h2{font:700 2rem Fraunces,Georgia,serif}.score-side p{color:#bed3cf;line-height:1.5}
.retire-list{display:grid;gap:8px;margin:16px 0}
.retire-list button{border:1px solid #4b827a;background:#c7e6da;color:#153f42;padding:13px;text-align:left;border-radius:8px}
.modal .dark{margin:10px 0 0;color:#21494d;background:#d8e5dd}
.print-ui{max-width:900px;margin:25px auto;padding:20px;color:#f5f9f5}
.print-ui h1{font:700 2.4rem Fraunces,Georgia,serif}
.print-ui p{line-height:1.5;color:#c6ddda}
.print-actions{display:flex;gap:12px}
.print-actions a{text-decoration:none;display:inline-flex;align-items:center}
.print-deck{max-width:970px;margin:auto}
.print-sheet{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;padding:14px;background:#b6cec8}
.print-card{aspect-ratio:63/88;background:#ecf1e8;color:#163d42;overflow:hidden;border:1px solid #365b5b;display:flex;flex-direction:column}
.print-art{height:35%;flex:none;border-bottom:4px solid var(--accent)}
.print-art .photo-location{font-size:.57rem;bottom:4px;left:6px}
.print-signal{position:absolute;right:5px;top:5px;display:flex;align-items:center;gap:4px;padding:3px 5px;background:#e58146;color:#17343c;border:1px solid #fff0c0;font-weight:900;font-size:.56rem;text-transform:uppercase;transform:rotate(5deg);box-shadow:0 2px 6px #05233199}
.print-signal b{font-size:1.65em;line-height:1}
.print-graphic{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 70% 20%,color-mix(in srgb,var(--graphic-color) 65%,white),transparent 40%),repeating-linear-gradient(135deg,#123b4a 0 9px,#1d5160 9px 18px);color:#f5fbf2}
.print-graphic::before{content:'';position:absolute;width:55%;aspect-ratio:1;border:2px solid var(--graphic-color);border-radius:50%;opacity:.7}
.print-graphic .graphic-symbol{position:relative;font:700 4em/1 Fraunces,Georgia,serif;letter-spacing:-.14em;text-shadow:0 3px 12px #061823}
.print-graphic .graphic-caption{position:absolute;bottom:5px;left:7px;right:7px;font-size:.59rem;font-weight:800;letter-spacing:.03em}
.role-graphic{background:radial-gradient(circle at 65% 35%,color-mix(in srgb,var(--graphic-color) 70%,white),transparent 52%),#102d3e}
.role-graphic::before{border-width:5px;border-radius:12px;transform:rotate(18deg)}
.print-content{padding:5%;font-size:clamp(.65rem,1vw,.85rem);line-height:1.25}
.print-kicker{text-transform:uppercase;letter-spacing:.07em;color:#477773;font-weight:800;font-size:.73em}
.print-kicker b{float:right}
.print-content h3{font:700 1.65em/1.06 Fraunces,Georgia,serif;margin:.35em 0 .55em}
.print-content p{margin:.45em 0}
.print-rule{background:#d3e3d8;border-left:4px solid var(--accent);padding:.5em}
.print-small{font-size:.8em}
.print-track{display:flex;flex-wrap:wrap;gap:4px;margin-top:15px}
.print-track span{border:1px solid #55817b;padding:5px}
.print-total{font-weight:800;border-top:2px solid var(--accent);padding-top:.3em}
.print-grades{display:grid;gap:2px;font-size:.75em;line-height:1.2}
.print-grades span{padding:.3em .5em}.print-grades b{display:block}
.print-grades .strained{background:#f3b6aa;color:#521d23}.print-grades .holding{background:#f2d69b;color:#584016}.print-grades .resilient{background:#a5dfc6;color:#174b3d}
.print-back{background:#0a2e3b;color:#f8f5e6;border:8px solid var(--accent);align-items:center;justify-content:center}
.back-ring{border:2px solid #a6ddd1;border-radius:50%;width:78%;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px}
.back-ring strong{font:700 1.6rem/1.1 Fraunces,Georgia,serif}.back-ring small{font-size:.7rem;letter-spacing:.12em}
.back-wave{font:700 3rem Fraunces,Georgia,serif;color:#58d6bd;line-height:.6}
.print-credits{color:#173b40;background:#f3f7f2;padding:34px;line-height:1.5;max-width:900px;margin:18px auto}
.print-credits h2{font:700 2rem Fraunces,Georgia,serif}
.print-credits li{margin:9px 0}.print-credits a{color:#146a63}
.print-url{display:none}
.photo-credits{padding-left:20px}
@media(max-width:900px){.table-grid,.impact-layout{grid-template-columns:1fr}.table-board{grid-template-columns:1fr 1fr;align-items:start}.table-board>section:first-child{grid-column:1/-1}.status-grid{grid-template-columns:repeat(4,1fr)}.resource-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.table-board{grid-template-columns:1fr}.table-board>section:first-child{grid-column:auto}.status-grid{grid-template-columns:repeat(2,1fr)}.active-grid{grid-template-columns:repeat(2,1fr)}.event-reveal{grid-template-columns:1fr;grid-template-rows:35vh 1fr}.event-hero{min-height:0}.event-copy{border-left:0;border-top:6px solid var(--event-accent);padding:22px}.event-number{font-size:4rem}.event-copy h1{font-size:3rem}.score-wrap{grid-template-columns:1fr}.top-actions{gap:5px}.top-actions .text-button{padding:6px;font-size:.72rem}.brand{gap:5px}.mark{width:24px;height:24px;font-size:1rem}}
@media(max-width:420px){.cards{grid-template-columns:1fr}.project-card{min-height:350px}.active-grid{grid-template-columns:1fr}.forecast-back{width:37%}.forecast-label{padding:8px}.forecast-label strong{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.event-hero,.event-copy{animation:none}}
@page{size:A4 portrait;margin:5mm}
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body,.app{background:white!important;margin:0!important}
  .print-ui{display:none!important}
  .print-deck{max-width:none;margin:0}
  .print-sheet{box-sizing:content-box;display:grid;grid-template-columns:repeat(3,63mm);grid-template-rows:repeat(3,88mm);gap:2mm;width:193mm;height:268mm;padding:0;margin:0 auto;background:transparent;break-after:page;page-break-after:always}
  .print-credits{box-sizing:border-box;width:190mm;min-height:270mm;margin:0 auto;padding:12mm;break-after:auto;page-break-after:auto}
  .print-credits a{color:#173b40}
  .print-url{display:block;font-size:7pt;overflow-wrap:anywhere;margin-top:2px}
  .print-credits li{margin:7px 0}
  .print-card{box-sizing:border-box;width:63mm;height:88mm;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none}
  .print-art{height:28mm}
  .print-content{padding:3.5mm;font-size:8pt}
  .print-content h3{font-size:15pt}
  .print-back{border:3mm solid var(--accent)}
}
