/* DataJunkies: The Periodic Table of Real Estate Data ([dj_periodic_table]) and the grouped report menu. */

/* ---------- shared ---------- */
.djpt .f-market,.djmenu .f-market,.djpt-modal .f-market{background:#FF8A65}
.djpt .f-money,.djmenu .f-money,.djpt-modal .f-money{background:#FFD23F}
.djpt .f-place,.djmenu .f-place,.djpt-modal .f-place{background:#3DD6C6}
.djpt .f-economy,.djmenu .f-economy,.djpt-modal .f-economy{background:#A78BFA}
.djpt .f-tools,.djmenu .f-tools,.djpt-modal .f-tools{background:#FF7EB6}
.djpt .f-buildings,.djmenu .f-buildings,.djpt-modal .f-buildings{background:#7CC4FF}
.djpt .f-all{background:conic-gradient(#FF8A65,#FFD23F,#3DD6C6,#A78BFA,#FF7EB6,#7CC4FF,#FF8A65)}
.djpt,.djpt-modal{--pt-ink:#10142B;--pt-panel:#1A2042;--pt-line:#2A3263;--pt-text:#F4F1E8;--pt-soft:#C9CEE6;--pt-muted:#A9B0D0;--pt-dark:#141A33}

/* ---------- section ---------- */
.djpt{position:relative;overflow:hidden;box-sizing:border-box;width:100%;max-width:100%;background-color:var(--pt-ink);background-image:radial-gradient(#232A55 1px,transparent 1px);background-size:22px 22px;color:var(--pt-text);font-family:'Bricolage Grotesque',system-ui,sans-serif;line-height:1.4}
.djpt *,.djpt *::before,.djpt *::after,.djpt-modal *,.djpt-modal *::before,.djpt-modal *::after{box-sizing:border-box}
.djpt button{font-family:inherit}
.djpt-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.djpt-pt{position:absolute;border-radius:50%;opacity:0;animation:djpt-drift linear infinite}
.djpt-in{position:relative;z-index:1;max-width:1440px;margin:0 auto;padding:clamp(28px,4vw,56px) clamp(16px,3vw,40px) 28px;display:flex;flex-direction:column;gap:clamp(18px,2vw,26px)}
.djpt-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 28px}
.djpt-intro{display:flex;flex-direction:column;gap:10px;flex:1 1 520px;max-width:820px;min-width:0}
.djpt-eyebrow{margin:0;font:600 12px/1.3 'JetBrains Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--pt-muted)}
.djpt .djpt-h{margin:0;font-family:'Bricolage Grotesque',system-ui,sans-serif;font-size:clamp(32px,5vw,62px);line-height:1;font-weight:800;letter-spacing:-.03em;color:var(--pt-text)}
.djpt-lead{margin:0;font-size:clamp(15px,1.4vw,18px);line-height:1.45;color:var(--pt-soft)}
.djpt-legend{flex:0 1 auto;display:flex;flex-wrap:wrap;gap:6px;max-width:520px}
.djpt-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border-radius:999px;border:1.5px solid #343D74;background:transparent;color:var(--pt-text);font:600 13px 'Bricolage Grotesque',sans-serif;cursor:pointer;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s,color .2s}
.djpt-chip:hover{transform:translateY(-2px)}
.djpt-chip.is-on{background:#F4F1E8;color:var(--pt-dark);border-color:#F4F1E8}
.djpt-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;animation:djpt-dotb 2.4s ease-in-out infinite}

/* search, inside the table */
.djpt-find{min-width:0;align-self:center;display:flex;flex-direction:column;gap:6px}
.djpt .djbs--pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0;padding:8px;border:1px solid var(--pt-line);border-radius:16px;background:var(--pt-panel);color:var(--pt-text)}
.djpt .djbs--pick .djbs__types{display:flex;flex-wrap:wrap;gap:4px;margin:0;padding:3px;border-radius:999px;background:var(--pt-ink)}
.djpt .djbs--pick .djbs__type{min-height:34px;padding:0 12px;border-radius:999px;border:0;background:transparent;color:var(--pt-text);font:600 13px 'Bricolage Grotesque',sans-serif;cursor:pointer;transition:background .2s,color .2s}
.djpt .djbs--pick .djbs__type[aria-checked="true"]{background:#FFD23F;color:var(--pt-dark)}
.djpt .djbs--pick .djbs__form{display:flex;gap:8px;margin:0;flex:1 1 300px;min-width:0}
.djpt .djbs--pick .djbs__field{position:relative;flex:1;min-width:0}
.djpt .djbs--pick .djbs__ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--pt-muted)}
.djpt .djbs--pick .djbs__input{width:100%;min-height:44px;border-radius:12px;border:1.5px solid #343D74;background:var(--pt-ink);color:var(--pt-text);font:600 15px 'Bricolage Grotesque',sans-serif;padding:0 12px 0 42px;outline:none;animation:djpt-breathe 4s ease-in-out infinite}
.djpt .djbs--pick .djbs__input:focus{border-color:#FFD23F;animation:none}
.djpt .djbs--pick .djbs__input::placeholder{color:#8A92BE}
.djpt .djbs--pick .djbs__btns{display:flex}
.djpt .djbs--pick .djbs__btn{min-height:44px;padding:0 18px;border-radius:12px;border:0;background:#FFD23F;color:var(--pt-dark);font:700 15px 'Bricolage Grotesque',sans-serif;cursor:pointer}
.djpt .djbs--pick .djbs__list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;margin:0;padding:6px;list-style:none;background:#F7F4EC;color:var(--pt-dark);border-radius:14px;box-shadow:0 24px 50px -12px rgba(0,0,0,.6);max-height:340px;overflow:auto}
.djpt .djbs--pick .djbs__list li{padding:9px 12px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.djpt .djbs--pick .djbs__list li[aria-selected="true"],.djpt .djbs--pick .djbs__list li:hover{background:#EDE8DB}
.djpt .djbs--pick .djbs__nm{font-weight:700;font-size:15px;color:var(--pt-dark)}
.djpt .djbs--pick .djbs__sub{font-size:12.5px;color:#4A5070}
.djpt .djbs--pick .djbs__tag{margin-left:8px;font-size:11px;font-weight:600;color:#8A4B12}
.djpt .djbs--pick .djbs__msg{flex-basis:100%;margin:0;font-size:13px;color:#FFD23F}
.djpt-topic{margin:0;font-size:13px;color:#FFD23F}
.djpt-now{margin:0;font-size:13px;color:var(--pt-soft)}
.djpt-now strong{color:var(--pt-text)}
.djpt-plevel{font:600 10px 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid #3A4380;color:var(--pt-muted);vertical-align:1px}
.djpt-count{display:inline-block;color:#FFD23F;animation:djpt-blink 2.4s ease-in-out infinite}

/* tiles */
.djpt-board{container-type:inline-size;min-width:0}
.djpt-el{position:relative;border:0;border-radius:10px;padding:6px 7px 6px 8px;color:var(--pt-dark);cursor:pointer;text-align:left;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:1/1.12;min-width:0;overflow:hidden;font-family:'Bricolage Grotesque',sans-serif;transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,opacity .35s,filter .35s;animation:djpt-pop .7s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:var(--d,0ms)}
.djpt-el::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.65) 50%,transparent 65%);background-size:300% 100%;background-position:150% 0;animation:djpt-glint 7s ease-in-out infinite;animation-delay:var(--w,0ms)}
.djpt-el:hover,.djpt-el:focus-visible,.djpt-el[aria-expanded="true"]{transform:translateY(-6px) rotate(-3deg) scale(1.07);box-shadow:0 16px 24px -10px rgba(0,0,0,.7);z-index:3;outline:none;overflow:visible}
.djpt-el:nth-child(even):hover,.djpt-el:nth-child(even):focus-visible{transform:translateY(-6px) rotate(3deg) scale(1.07)}
.djpt-el:focus-visible{box-shadow:0 0 0 3px var(--pt-ink),0 0 0 5px #F4F1E8}
.djpt-el__n{font:600 10px 'JetBrains Mono',monospace}
.djpt-el__s{display:inline-block;font-weight:800;font-size:24px;line-height:1;letter-spacing:-.02em;animation:djpt-bob 3.6s ease-in-out infinite;animation-delay:var(--b,0ms)}
.djpt-el:nth-child(5n+3) .djpt-el__s{animation:djpt-wig 7s ease-in-out infinite}
.djpt-el__t{display:flex;flex-direction:column;gap:1px;min-width:0}
.djpt-el__nm{font-weight:600;font-size:10px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.djpt-el__m{font-weight:500;font-size:8.5px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.djpt-el.is-dim{opacity:.16;filter:grayscale(.7)}
.djpt-el.is-na{opacity:.22;filter:grayscale(1);cursor:help;outline:1.5px dashed #6B73A6;outline-offset:2px}
.djpt-el.is-na:hover,.djpt-el.is-na:focus-visible{transform:none;box-shadow:none;opacity:.42}
.djpt-el.is-na::before{display:none}
.djpt-el.is-hit{box-shadow:0 0 0 3px var(--pt-ink),0 0 0 5px #F4F1E8,0 0 34px rgba(255,255,255,.35);animation:djpt-hop .9s cubic-bezier(.34,1.56,.64,1);z-index:2}
.djpt-el.is-sel::after{content:'';position:absolute;inset:-5px;border-radius:14px;border:2px solid #F4F1E8;animation:djpt-ring 1.6s ease-in-out infinite;pointer-events:none}

/* key panel (wide screens) */
.djpt-key{background:var(--pt-panel);border:1px solid var(--pt-line);border-radius:18px;padding:clamp(10px,1.2cqi,18px) clamp(12px,1.6cqi,22px);display:flex;gap:clamp(12px,1.8cqi,24px);align-items:center;min-width:0;overflow:hidden}
.djpt-key__fig{position:relative;flex:none;width:clamp(96px,11cqi,160px);aspect-ratio:1;display:grid;place-items:center}
.djpt-orbit{position:absolute;inset:0;border:1.5px dashed #3A4380;border-radius:50%;animation:djpt-spin 10s linear infinite}
.djpt-orbit--2{inset:14%;animation-duration:6s;animation-direction:reverse}
.djpt-orbit i{position:absolute;width:9px;height:9px;border-radius:50%;top:-4.5px;left:calc(50% - 4.5px);background:#FFD23F;box-shadow:0 0 12px #FFD23F}
.djpt-orbit i+i{top:auto;bottom:-4.5px;background:#3DD6C6;box-shadow:0 0 12px #3DD6C6}
.djpt-orbit--2 i{background:#FF7EB6;box-shadow:0 0 12px #FF7EB6}
.djpt-key__big{position:relative;z-index:1;width:64%;height:70%;border-radius:14px;padding:7% 8%;display:flex;flex-direction:column;justify-content:space-between;color:var(--pt-dark);box-shadow:0 18px 30px -12px rgba(0,0,0,.6);animation:djpt-float 4s ease-in-out infinite}
.djpt-key__n{font:600 clamp(9px,.9cqi,12px) 'JetBrains Mono',monospace}
.djpt-key__sym{font-size:clamp(26px,3.3cqi,48px);font-weight:800;line-height:1;letter-spacing:-.03em}
.djpt-key__tag{font-size:clamp(8px,.75cqi,10px);font-weight:700;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.djpt-key__txt{display:flex;flex-direction:column;gap:clamp(4px,.5cqi,7px);min-width:0}
.djpt-key__fl{margin:0;font:600 clamp(9.5px,.85cqi,11.5px) 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--fc,#FFD23F)}
.djpt .djpt-key__name{margin:0;font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(18px,2cqi,28px);line-height:1.05;font-weight:800;letter-spacing:-.02em;color:var(--pt-text)}
.djpt-key__desc{margin:0;font-size:clamp(12.5px,1.1cqi,15px);line-height:1.4;color:var(--pt-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.djpt-key__act{margin:2px 0 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.djpt-cta{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border-radius:999px;border:0;background:#FFD23F;color:var(--pt-dark)!important;font:700 15px 'Bricolage Grotesque',sans-serif;text-decoration:none!important;cursor:pointer;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.djpt-cta[hidden]{display:none}
.djpt-cta:hover{transform:translateY(-2px) rotate(-1.5deg)}
.djpt-lock{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border-radius:999px;border:1.5px dashed #6B73A6;color:var(--pt-text);font-size:13.5px;font-weight:600;animation:djpt-blink 2.4s ease-in-out infinite}
.djpt-lock[hidden]{display:none}

/* building series + how to read */
.djpt-series{margin-top:clamp(18px,2cqi,26px)}
.djpt-series__l{margin:0;display:flex;flex-direction:column;justify-content:center;gap:4px}
.djpt-series__l strong{font-size:15px;font-weight:800;color:#7CC4FF}
.djpt-series__l span{font-size:12px;line-height:1.35;color:var(--pt-muted)}
.djpt-howto{margin:0;display:flex;align-items:center;gap:14px;font-size:12.5px;line-height:1.45;color:var(--pt-muted)}
.djpt-howto b{color:var(--pt-text)}
.djpt-howto__tile{flex:none;width:46px;height:52px;border-radius:8px;border:1.5px solid #F4F1E8;display:flex;flex-direction:column;justify-content:space-between;padding:4px 6px}
.djpt-howto__tile i{font:600 6px 'JetBrains Mono',monospace;font-style:normal;color:var(--pt-text)}
.djpt-howto__tile b{font-size:16px;font-weight:800;line-height:1}
.djpt-copy{margin:6px 0 0;padding-top:18px;border-top:1px solid #262E5E;font-size:13px;color:var(--pt-muted);text-align:center}

/* ---- wide screens: the periodic grid, fluid to the viewport ---- */
@media (min-width:1100px){
	.djpt-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:clamp(5px,.6cqi,8px)}
	.djpt-fam,.djpt-fam__row{display:contents}
	.djpt-fam__h,.djpt-now--m{display:none}
	.djpt-el{grid-column:var(--c);grid-row:var(--r);align-self:start;padding:clamp(4px,.5cqi,7px) clamp(5px,.55cqi,8px)}
	.djpt-el__n{font-size:clamp(8px,.78cqi,10.5px)}
	.djpt-el__s{font-size:clamp(17px,2.05cqi,28px)}
	.djpt-el__nm{font-size:clamp(7.5px,.8cqi,11px)}
	.djpt-el__m{font-size:clamp(7px,.68cqi,9.5px)}
	.djpt-find{grid-column:3/14;grid-row:1}
	.djpt-key{grid-column:3/9;grid-row:2/4}
	.djpt-series__l{grid-column:1/3;grid-row:1}
	.djpt-howto{grid-column:11/15;grid-row:1;padding-left:14px;border-left:1px dashed #343D74}
}

/* ---- smaller screens: family blocks whose tiles wrap; an opened card slides in between the rows ---- */
@media (max-width:1099px){
	.djpt-grid{display:flex;flex-direction:column;gap:18px}
	.djpt-key{display:none}
	.djpt-legend{max-width:none}
	.djpt-fam{display:flex;flex-direction:column;gap:8px}
	.djpt-fam__h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0;font-size:12.5px;color:var(--pt-muted)}
	.djpt-fam__h strong{font-size:17px;color:var(--pt-text)}
	.djpt-fam__h .djpt-dot{align-self:center}
	.djpt-fam__row{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
	.djpt-el{aspect-ratio:1/1.08}
	.djpt-el__s{font-size:26px}
	.djpt-el__nm{font-size:10.5px}
	.djpt-el__m{font-size:9px}
	.djpt-series__l{padding:0}
	.djpt-howto{padding-top:4px}
	.djpt-inline{grid-column:1/-1;min-width:0}
	.djpt-series .djpt-fam__h{display:none}
}
@media (max-width:600px){
	.djpt-fam__row{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}
	.djpt-el__s{font-size:22px}
	.djpt-el:hover,.djpt-el:nth-child(even):hover{transform:none;box-shadow:none}
	.djpt-el:active{transform:scale(.94) rotate(-3deg)}
	.djpt .djbs--pick .djbs__types{width:100%;justify-content:space-between}
	.djpt .djbs--pick .djbs__type{flex:1;padding:0 6px;font-size:12.5px}
}

/* ---------- the card (window on wide screens, inline on smaller ones) ---------- */
.djpt-modal{position:fixed;inset:0;z-index:100000;background:rgba(8,10,24,.74);display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden}
.djpt-modal[hidden]{display:none}
.djpt-card{display:flex;flex-direction:column;background:#F7F4EC;color:var(--pt-dark);border-radius:22px;overflow:hidden;font-family:'Bricolage Grotesque',system-ui,sans-serif}
.djpt-modal .djpt-card{width:min(860px,100%);max-height:calc(100vh - 48px);box-shadow:0 30px 80px rgba(0,0,0,.55);animation:djpt-flip .6s cubic-bezier(.34,1.56,.64,1)}
.djpt-inline .djpt-card{width:100%;border-radius:18px;box-shadow:0 18px 40px -16px rgba(0,0,0,.7);animation:djpt-drop .5s cubic-bezier(.34,1.56,.64,1);transform-origin:top center}
.djpt-card__head{flex:none;display:flex;align-items:center;gap:14px;padding:12px 16px}
.djpt-card__badge{flex:none;width:60px;height:66px;border-radius:12px;background:rgba(255,255,255,.45);display:flex;flex-direction:column;justify-content:space-between;padding:6px 8px}
.djpt-card__n{font:600 11px 'JetBrains Mono',monospace}
.djpt-card__sym{font-size:28px;font-weight:800;line-height:1}
.djpt-card__tt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.djpt-card__fl{font:600 11px 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase}
.djpt-card__name{font-size:clamp(19px,2.4vw,26px);font-weight:800;letter-spacing:-.02em;line-height:1.1;overflow-wrap:anywhere}
.djpt-card__x{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:rgba(20,26,51,.12);color:var(--pt-dark);display:grid;place-items:center;cursor:pointer}
.djpt-card__body{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 18px 8px;min-width:0}
.djpt-card__body .dj-widget{margin:12px 0;max-width:100%}
.djpt-card__body .dj-report__sec{margin:0}
.djpt-card__foot{flex:none;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:12px 16px 16px;border-top:1px solid #E4DECF}
.djpt-ghost{min-height:42px;padding:0 16px;border-radius:999px;border:1.5px solid #C9C3B3;background:transparent;color:var(--pt-dark);font:600 14px 'Bricolage Grotesque',sans-serif;cursor:pointer}
.djpt-ghost:hover{background:#EDE8DB}
.djpt-card .djpt-full{background:var(--pt-dark);color:#F7F4EC!important}
.djpt-msg{margin:16px 0;font-size:16px;line-height:1.5;color:#3B4166}
.djpt-load{display:flex;align-items:flex-end;gap:5px;height:200px;margin:16px 0;padding:18px 18px 0;border-radius:14px;background:#EDE8DB}
.djpt-load span{flex:1;border-radius:4px 4px 0 0;opacity:.9;transform-origin:bottom;animation:djpt-grow 1s cubic-bezier(.34,1.56,.64,1) infinite alternate}
@media (max-width:600px){
	.djpt-card__foot .djpt-ghost{flex:1}
	.djpt-card__foot .djpt-full{flex:1 1 100%}
	.djpt-card__badge{width:52px;height:58px}
	.djpt-card__sym{font-size:24px}
}
body.djpt-lock-scroll{overflow:hidden}

/* sample visualizations (demo mode) */
.djpt-viz{position:relative;margin:14px 0 6px;padding:40px 16px 16px;border-radius:14px;background:#EDE8DB;min-height:210px;overflow:hidden}
.djpt-viz__tag{position:absolute;top:12px;left:14px;font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.06em;background:#F7F4EC;color:#3B4166;padding:4px 8px;border-radius:6px}
.djpt-viz__bars{display:flex;align-items:flex-end;gap:5px;height:170px}
.djpt-viz__bars span{flex:1;border-radius:4px 4px 0 0;background:var(--fc);opacity:.9;transform-origin:bottom;animation:djpt-grow .9s cubic-bezier(.34,1.56,.64,1) backwards}
.djpt-viz svg{display:block;width:100%;height:170px}
.djpt-viz__line{fill:none;stroke:var(--fc);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900;animation:djpt-draw 2.2s ease-out forwards}
.djpt-viz__area{fill:var(--fc);opacity:.18}
.djpt-viz__grid{stroke:#D6CFBE;stroke-width:1}
.djpt-viz__tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.djpt-viz__tiles div{background:#F7F4EC;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;animation:djpt-pop .6s cubic-bezier(.34,1.56,.64,1) backwards}
.djpt-viz__tiles small{font-size:12.5px;color:#4A5070}
.djpt-viz__tiles b{display:block;height:20px;width:70%;border-radius:6px;background:var(--fc);opacity:.55;animation:djpt-fade 1.8s ease-in-out infinite}
.djpt-viz__map{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.djpt-viz__map span{aspect-ratio:1;border-radius:4px;background:var(--fc);animation:djpt-fade 3s ease-in-out infinite}
.djpt-viz__rows{display:flex;flex-direction:column;gap:9px}
.djpt-viz__rows div{display:flex;align-items:center;gap:10px;animation:djpt-pop .6s cubic-bezier(.34,1.56,.64,1) backwards}
.djpt-viz__rows i{flex:none;width:28%;height:12px;border-radius:6px;background:#D6CFBE}
.djpt-viz__rows b{height:14px;border-radius:7px;background:var(--fc);transform-origin:left;animation:djpt-growx 1s cubic-bezier(.34,1.56,.64,1) backwards}
.djpt-viz__note{margin:10px 0 4px;font-size:13px;color:#4A5070}

@keyframes djpt-pop{0%{opacity:0;transform:translateY(26px) scale(.5) rotate(-12deg)}60%{opacity:1}100%{opacity:1;transform:none}}
@keyframes djpt-glint{0%,72%{background-position:150% 0}100%{background-position:-60% 0}}
@keyframes djpt-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes djpt-wig{0%,88%,100%{transform:none}91%{transform:rotate(-10deg)}94%{transform:rotate(9deg)}97%{transform:rotate(-4deg)}}
@keyframes djpt-ring{0%,100%{opacity:.95;transform:scale(1)}50%{opacity:.25;transform:scale(1.07)}}
@keyframes djpt-hop{0%{transform:none}35%{transform:translateY(-16px) rotate(-5deg) scale(1.12)}65%{transform:translateY(2px) scale(.97)}100%{transform:none}}
@keyframes djpt-spin{to{transform:rotate(360deg)}}
@keyframes djpt-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}
@keyframes djpt-flip{from{opacity:0;transform:perspective(900px) rotateX(-24deg) translateY(40px) scale(.88)}}
@keyframes djpt-drop{from{opacity:0;transform:translateY(-14px) scaleY(.85)}}
@keyframes djpt-grow{from{transform:scaleY(0)}}
@keyframes djpt-growx{from{transform:scaleX(0)}}
@keyframes djpt-draw{to{stroke-dashoffset:0}}
@keyframes djpt-fade{0%,100%{opacity:.55}50%{opacity:.2}}
@keyframes djpt-drift{0%{opacity:0;transform:translate(0,40px) scale(.6)}15%{opacity:.8}80%{opacity:.5}100%{opacity:0;transform:translate(30px,-160px) scale(1.1)}}
@keyframes djpt-blink{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}
@keyframes djpt-dotb{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
@keyframes djpt-breathe{0%,100%{box-shadow:0 0 0 0 rgba(255,210,63,0)}50%{box-shadow:0 0 0 6px rgba(255,210,63,.14)}}

/* ---------- report menu: "Jump to" becomes a grouped dropdown with a periodic-table view ---------- */
.dj-report__nav.has-djmenu{display:flex;align-items:center;gap:10px}
.has-djmenu .dj-report__links{flex:1 1 auto;min-width:0}
.has-djmenu .dj-report__jump{display:none!important}
.djmenu-btn{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:36px;max-width:100%;padding:0 12px;border:1px solid var(--dj-line,#d3e5e5);border-radius:10px;background:var(--dj-bg,#fff);color:var(--dj-ink,#083344);font:inherit;font-size:.85rem;font-weight:700;line-height:1.2;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.djmenu-btn:hover,.djmenu-btn[aria-expanded="true"]{border-color:var(--dj-accent,#17797e);box-shadow:0 0 0 3px color-mix(in srgb,var(--dj-accent,#17797e) 15%,transparent)}
.djmenu-btn svg{flex:none}
.djmenu-btn__ico{display:grid;grid-template-columns:repeat(3,5px);gap:2px}
.djmenu-btn__ico i{width:5px;height:5px;border-radius:1.5px;background:#FF8A65}
.djmenu-btn__ico i:nth-child(2){background:#FFD23F}.djmenu-btn__ico i:nth-child(3){background:#3DD6C6}.djmenu-btn__ico i:nth-child(4){background:#A78BFA}.djmenu-btn__ico i:nth-child(5){background:#7CC4FF}.djmenu-btn__ico i:nth-child(6){background:#FF7EB6}
.djmenu-btn__cur{display:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--dj-muted,#4b6870)}
.djmenu-btn__chev{transition:transform .2s}
.djmenu-btn[aria-expanded="true"] .djmenu-btn__chev{transform:rotate(180deg)}
.dj-report__nav.is-compact .djmenu-btn{flex:1;justify-content:flex-start}
.dj-report__nav.is-compact .djmenu-btn__cur{display:inline;flex:1;text-align:left}
.djmenu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;max-height:min(70vh,620px);overflow:auto;border:1px solid var(--dj-line,#d3e5e5);border-radius:16px;background:var(--dj-bg,#fff);color:var(--dj-ink,#083344);box-shadow:0 24px 48px -16px rgba(8,51,68,.35);animation:djmenu-in .28s cubic-bezier(.34,1.56,.64,1)}
.djmenu[hidden]{display:none}
.djmenu__head{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:inherit;border-bottom:1px solid var(--dj-line,#d3e5e5)}
.djmenu__title{margin:0;font-size:.95rem;font-weight:800}
.djmenu__seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--dj-tint,#e3f3f1)}
.djmenu__seg button{min-height:32px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--dj-ink,#083344);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}
.djmenu__seg button[aria-pressed="true"]{background:var(--dj-ink,#083344);color:#fff}
.djmenu__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px 22px;padding:14px}
.djmenu__grp h4{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dj-muted,#4b6870)}
.djmenu__dot{width:10px;height:10px;border-radius:50%;flex:none}
.djmenu__links{display:flex;flex-wrap:wrap;gap:6px}
.djmenu__links a{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border:1px solid var(--dj-line,#d3e5e5);border-radius:999px;color:var(--dj-ink,#083344);font-size:.82rem;font-weight:600;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s,transform .2s}
.djmenu__links a:hover,.djmenu__links a:focus-visible{border-color:var(--dj-accent,#17797e);transform:translateY(-1px)}
.djmenu__links a.is-active{background:var(--dj-ink,#083344);border-color:var(--dj-ink,#083344);color:#fff}
.djmenu__sym{font:700 .68rem ui-monospace,'JetBrains Mono',monospace;padding:1px 5px;border-radius:5px;color:#141A33}
.djmenu__table{padding:16px 16px 18px;background-color:#10142B;background-image:radial-gradient(#232A55 1px,transparent 1px);background-size:20px 20px;color:#F4F1E8;font-family:'Bricolage Grotesque',system-ui,sans-serif}
.djmenu__table[hidden],.djmenu__list[hidden]{display:none}
.djmenu__brand{margin:0 0 12px;font:600 10.5px 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:#A9B0D0}
.djmenu__row{display:flex;align-items:flex-start;gap:12px;margin:0 0 10px}
.djmenu__rowl{flex:none;width:96px;padding-top:6px;font-size:.78rem;font-weight:800;line-height:1.2}
.djmenu__rowl small{display:block;font-weight:500;color:#A9B0D0}
.djmenu__tiles{display:flex;flex-wrap:wrap;gap:7px;min-width:0}
.djmenu__tile{position:relative;flex:none;width:68px;height:74px;border-radius:9px;padding:5px 6px;color:#141A33!important;text-decoration:none!important;display:flex;flex-direction:column;justify-content:space-between;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;animation:djpt-pop .6s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:var(--d,0ms)}
.djmenu__tile:hover,.djmenu__tile:focus-visible{transform:translateY(-5px) rotate(-3deg) scale(1.07);box-shadow:0 12px 20px -8px rgba(0,0,0,.7);outline:none;z-index:2}
.djmenu__tile.is-active::after{content:'';position:absolute;inset:-4px;border-radius:12px;border:2px solid #F4F1E8;animation:djpt-ring 1.6s ease-in-out infinite}
.djmenu__tile b{font-size:21px;font-weight:800;line-height:1}
.djmenu__tile i{font:600 9px 'JetBrains Mono',monospace;font-style:normal}
.djmenu__tile span{font-size:9px;font-weight:600;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes djmenu-in{from{opacity:0;transform:translateY(-8px) scale(.98)}}
@media (max-width:767px){
	.dj-report__nav.has-djmenu .djmenu-btn{flex:1;justify-content:flex-start}
	.dj-report__nav.has-djmenu .djmenu-btn__cur{display:inline;flex:1;text-align:left}
	.djmenu{max-height:75vh}
	.djmenu__list{grid-template-columns:1fr;gap:14px}
	.djmenu__links{flex-direction:column;flex-wrap:nowrap}
	.djmenu__links a{display:flex;white-space:normal;border-radius:10px;padding:10px 12px}
	.djmenu__row{flex-direction:column;gap:6px}
	.djmenu__rowl{width:auto;padding:0}
	.djmenu__tile{width:64px;height:70px}
}

@media (prefers-reduced-motion:reduce){
	.djpt *,.djpt *::before,.djpt *::after,.djpt-modal *,.djmenu *,.djmenu,.djmenu__tile::after{animation:none!important;transition:none!important}
	.djpt-viz__line{stroke-dashoffset:0}
}

/* hero breathing room: padding above and below the title and the lead */
.djpt-head{padding:clamp(18px,3.4vw,48px) 0 clamp(10px,2.2vw,28px)}
.djpt-intro{gap:clamp(12px,1.4vw,18px)}
