*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}
body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-body)/1.55 var(--font-body);padding:env(safe-area-inset-top,0) 0 calc(4.2rem + env(safe-area-inset-bottom,0))}
h1,h2,h3{font-family:var(--font-head);line-height:1.12;margin:0 0 var(--s3);color:var(--primary)}
h1{font-size:var(--fs-h1);font-weight:800}h2{font-size:var(--fs-h2);font-weight:800}h3{font-size:var(--fs-h3);margin-top:var(--s5)}
p{margin:0 0 var(--s4)}a{color:inherit}
.wrap{max-width:62rem;margin:0 auto;padding:var(--s6) var(--s4)}.narrow{max-width:44rem}
.skip{position:absolute;left:-99rem}.skip:focus{left:var(--s3);top:var(--s3);background:var(--surface);padding:var(--s2) var(--s3);z-index:9}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:var(--s3) var(--s4);background:var(--bg);border-bottom:2px solid var(--accent)}
.logo{height:2.4rem;width:auto;display:block}.logo-dark{display:none}
.menu-btn{width:var(--tap);height:var(--tap);border:0;background:none;display:grid;place-content:center;gap:5px;cursor:pointer}
.menu-btn span{display:block;width:22px;height:2.5px;background:var(--primary);border-radius:2px}
.menu{position:sticky;top:4rem;z-index:4;display:grid;background:var(--primary);padding:var(--s2) var(--s4)}.menu[hidden]{display:none}
.menu a{color:var(--primary-contrast);text-decoration:none;padding:var(--s3) 0;min-height:var(--tap);border-bottom:1px solid rgba(246,241,228,.18);font-weight:600}
.hero{background:var(--primary);color:var(--primary-contrast);padding:var(--s7) var(--s4) var(--s6);background-image:repeating-radial-gradient(circle at 100% 0,transparent 0 14px,rgba(184,146,58,.13) 14px 15px)}
.hero>*{max-width:62rem;margin-left:auto;margin-right:auto}.hero h1{color:var(--primary-contrast)}
.eyebrow{color:var(--accent);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:var(--fs-small)}
.trackbox{background:var(--surface);color:var(--text);padding:var(--s4);border-radius:var(--radius);box-shadow:var(--shadow);margin:var(--s5) auto}
.trackbox label{display:block;font-weight:600;margin-bottom:var(--s2)}.row{display:flex;gap:var(--s2)}
input{flex:1;min-width:0;min-height:var(--tap);padding:0 var(--s3);border:1.5px solid var(--line);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text)}
button[type=submit],.btn{min-height:var(--tap);padding:0 var(--s5);border:0;border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-contrast);font:700 1rem var(--font-body);display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}
.btn.gold{background:var(--accent);color:var(--jj-ink-900)}
.cards3,.grid2,.grid3{display:grid;gap:var(--s3)}
.card{display:grid;gap:var(--s1);padding:var(--s4);border-radius:var(--radius);text-decoration:none;background:var(--surface);color:var(--text);border:1px solid var(--line);min-height:var(--tap)}
.card b{font:800 1.1rem var(--font-head);color:var(--primary)}.card span{color:var(--text-muted);font-size:var(--fs-small)}
.card.act{border-top:4px solid var(--accent)}.card.gold{background:#FBF4DF}.card.div{border-left:5px solid var(--primary)}
.proof{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin-top:var(--s5);font-weight:600;font-size:var(--fs-small);color:var(--jj-mist-200)}
.ph{display:inline-block;vertical-align:middle;font:700 .65rem var(--font-body);letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:99px;background:var(--accent);color:var(--jj-ink-900)}
.band{background:var(--jj-mist-200);border-block:1px solid var(--line)}.band h2{color:var(--primary)}
.tag{display:inline-block;margin:0 0 var(--s2);padding:3px 10px;border-radius:99px;background:var(--jj-mist-200);color:var(--primary);font:700 .75rem var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s5);box-shadow:var(--shadow)}
.panel.dark{background:var(--primary);color:var(--primary-contrast)}.panel.dark h2,.panel.dark h3{color:var(--primary-contrast)}
.ticks{list-style:none;padding:0;margin:0 0 var(--s5);display:grid;gap:var(--s2)}
.ticks li{padding-left:1.7rem;position:relative}.ticks li:before{content:"";position:absolute;left:0;top:.5em;width:.9rem;height:.5rem;border-left:3px solid var(--accent);border-bottom:3px solid var(--accent);transform:rotate(-45deg)}
.bulletins{list-style:none;padding:0;display:grid;gap:var(--s2)}.bulletins li a{display:block;padding:var(--s3) var(--s4);background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-sm);text-decoration:none;font-weight:600}
.foot{background:var(--primary);color:var(--primary-contrast)}.foot small{color:var(--jj-mist-200)}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:6;display:grid;grid-template-columns:repeat(3,1fr);background:var(--primary);border-top:2px solid var(--accent);padding-bottom:env(safe-area-inset-bottom,0)}
.dock a{color:var(--primary-contrast);text-align:center;text-decoration:none;font-weight:700;padding:.95rem 0;min-height:var(--tap)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media(min-width:600px){.cards3{grid-template-columns:repeat(3,1fr)}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.dock{display:none}body{padding-bottom:0}.logo{height:2.8rem}.menu-btn{display:none}.menu{position:static;display:flex!important;gap:var(--s5);justify-content:center}.menu[hidden]{display:flex}}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0E1713;--surface:#15241D;--text:#F6F1E4;--text-muted:#B7C4BB;--primary:#1F6B4F;--line:#27392F}
:root:not([data-theme=light]) .logo-light{display:none}:root:not([data-theme=light]) .logo-dark{display:block}
:root:not([data-theme=light]) .card b,:root:not([data-theme=light]) h2,:root:not([data-theme=light]) h3,:root:not([data-theme=light]) .tag{color:#F6F1E4}
:root:not([data-theme=light]) .card.gold{background:#2A2614}:root:not([data-theme=light]) .band{background:#15241D}:root:not([data-theme=light]) .tag{background:#27392F}
:root:not([data-theme=light]) .hero{background-color:#0B3D2E}}
.note{margin:var(--s2) 0 0;font-size:var(--fs-small);color:var(--text-muted)}
/* Phase 2-3: forms, tracking, account */
.stack{display:grid;gap:var(--s3);margin:var(--s4) 0}.stack label{display:grid;gap:var(--s1);font-weight:600}
select{min-height:var(--tap);padding:0 var(--s3);border:1.5px solid var(--line);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:var(--text)}
.grid4{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3)}@media(min-width:600px){.grid4{grid-template-columns:repeat(4,1fr)}}
.btn.alt{background:transparent;color:var(--primary);border:2px solid var(--primary)}.tabs,.bar{display:flex;gap:var(--s2);flex-wrap:wrap;align-items:center;justify-content:space-between}.tabs{justify-content:flex-start}
.note.bad{color:var(--danger);font-weight:600}.big{font:800 2.2rem var(--font-head);color:var(--primary);margin:0 0 var(--s2)}
.map{height:18rem;border-radius:var(--radius);margin:var(--s4) 0;border:1px solid var(--line);z-index:0}
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2);padding:0;margin:var(--s4) 0}@media(min-width:600px){.steps{grid-template-columns:repeat(6,1fr)}}
.steps li{padding:var(--s2);text-align:center;font-size:var(--fs-small);font-weight:600;border-radius:var(--radius-sm);background:var(--line);color:var(--text-muted)}
.steps li.done{background:var(--jj-green-700);color:#fff}.steps li.now{background:var(--accent);color:var(--jj-ink-900)}
.timeline{list-style:none;padding:0;margin:0;border-left:3px solid var(--accent)}.timeline li{padding:0 0 var(--s4) var(--s4)}
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-small)}.tbl td,.tbl th{padding:var(--s2);border-bottom:1px solid var(--line);text-align:left}.tablewrap{overflow-x:auto}
.label{border:3px dashed var(--primary);border-radius:var(--radius-sm);padding:var(--s4);margin:var(--s4) 0;background:#fff;color:#000}.label .tn{font:800 1.7rem/1 var(--font-head);letter-spacing:.06em;margin:var(--s2) 0}
@media print{body.pl *{visibility:hidden}body.pl .label,body.pl .label *{visibility:visible}body.pl .label{position:absolute;left:0;top:0;width:100%}}
