/* PoE Starter: a horizontal flow of choices joined by lines, ending in the plan for the chosen build. */
:root{--bg:#0b0b0c;--card:#111113;--plan:#0f0f12;--chip:#131316;--b1:#1f1f23;--b2:#26262b;--b3:#2e2e35;--text:#ededef;--soft:#c4c4ca;--dim:#8b8b93;--mute:#6b6b73;
  --acc:#5e6ad2;--ease:cubic-bezier(.2,.7,.2,1)}
body{margin:0;background:var(--bg)}
.app{min-height:100vh;display:flex;flex-direction:column;font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:13px;line-height:1.45;color:var(--text);background:var(--bg);
  -webkit-font-smoothing:antialiased}
.app *,.app *::before,.app *::after{box-sizing:border-box}
.app a{color:inherit;text-decoration:none}

/* header and bar */
.hdr{height:56px;flex:none;display:flex;align-items:center;gap:28px;padding:0 24px;border-bottom:1px solid var(--b1)}
.brand{font-weight:600;font-size:15px}
.title{display:flex;align-items:center;gap:18px}
.patch{margin-left:auto;display:inline-flex;align-items:baseline;gap:6px;border:1px solid rgba(94,106,210,.45);background:rgba(94,106,210,.12);border-radius:99px;padding:2px 10px;font-size:12px;line-height:1.4}
.patch .ver{color:#c9cbff;font-weight:600}
.patch .sep{color:var(--mute)}
.patch .lg{color:var(--soft)}
.patch a:hover{color:#fff;text-decoration:underline;text-underline-offset:2px}
.bar{display:flex;align-items:center;gap:12px;padding:14px 24px;border-bottom:1px solid #18181b;flex-wrap:wrap}
.pseg{position:relative;display:flex;padding:3px;border:1px solid var(--b2);border-radius:9px;background:var(--card)}
.pthumb{position:absolute;top:3px;bottom:3px;width:96px;border-radius:6px;background:var(--text);transition:left .28s var(--ease),width .28s var(--ease)}
.pseg.is-goal .pthumb{width:112px;background:#26262c;border:1px solid var(--b3)}
.pb{position:relative;display:flex;align-items:center;justify-content:center;width:96px;height:28px;border-radius:6px;color:#a1a1aa;font-weight:500;cursor:pointer;transition:color .2s}
.pseg.is-goal .pb{width:112px;color:var(--dim)}
.pb:hover{color:var(--text)}
.bar.has-about{border-bottom:0;padding-bottom:12px}
.about{display:flex;align-items:center;gap:10px;margin:0 24px 4px;padding:10px 14px;border-radius:10px;background:rgba(94,106,210,.08);border:1px solid rgba(94,106,210,.22);color:#c9cbff;font-size:13px;line-height:1.5;animation:fade .35s ease both}
.about svg{flex:none;color:var(--acc)}
.pb.is-disabled,.pb.is-disabled:hover{color:var(--mute);opacity:.55;cursor:not-allowed}
.pb[aria-checked=true],.pb[aria-checked=true]:hover{color:var(--bg)}
.pseg.is-goal .pb[aria-checked=true],.pseg.is-goal .pb[aria-checked=true]:hover{color:var(--text)}
.problems{margin:12px 24px 0;padding:12px 14px;border-radius:10px;border:1px solid rgba(242,96,122,.4);background:rgba(242,96,122,.08);color:#f0a0b0;font-size:12px;line-height:1.6}
.problems[hidden]{display:none}
.app a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}

/* the flow */
.stage{flex:1;padding:24px;min-width:0}
.flow{--ac:var(--acc);display:flex;align-items:stretch;overflow-x:auto;min-height:540px;padding-bottom:4px}
.col{flex:0 0 220px;display:flex;flex-direction:column;gap:12px}
.col.is-build{flex-basis:250px}
.col.plan-col{flex:1 1 440px;min-width:400px;padding-top:36px}
.conn{flex:0 0 56px;position:relative}
.cseg{position:absolute;border-radius:1px;transform-origin:left center;animation:grow .32s var(--ease) both;
  transition:top .28s var(--ease),height .28s var(--ease),background-color .2s}
.chead{height:24px;display:flex;align-items:center;gap:8px;font-weight:500;color:var(--mute);transition:color .25s}
.chead.is-on{color:var(--text)}
.bubble{width:20px;height:20px;border-radius:50%;background:#232328;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;transition:background-color .25s}
.bubble.is-active{background:#3a3a42}
.bubble.is-done{background:var(--ac)}

.node{height:84px;flex:none;display:flex;flex-direction:column;justify-content:space-between;padding:14px 16px;border-radius:12px;border:1px solid var(--b3);background:var(--card);color:var(--text);cursor:pointer;
  animation:up .36s var(--ease) backwards;transition:border-color .2s,background-color .2s,color .2s,transform .18s,opacity .2s}
.node:hover{transform:translateY(-2px)}
.node:active{transform:translateY(0) scale(.99)}
.node.is-sel{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 12%,#0f0f12)}
.node.is-build{border-color:color-mix(in srgb,var(--c) 38%,transparent)}
.node.is-build.is-sel{border-color:var(--c);background:color-mix(in srgb,var(--c) 10%,#0f0f12)}
.node.is-build.is-off{border-color:color-mix(in srgb,var(--c) 18%,transparent);background:transparent}
.node.is-off{border-color:var(--b1);background:transparent;color:var(--dim)}
.node.is-na{opacity:.45;cursor:not-allowed}
.node.is-na:hover{transform:none}
.nrow{display:flex;justify-content:space-between;width:100%}
.nname{font-size:15px;font-weight:600}
.ncount{color:var(--dim)}
.dots{display:flex;gap:5px}
.dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.node.is-build{flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:12px 14px}
.node.is-build .nname{font-size:14px}
.bmeta{display:flex;flex-direction:column;gap:4px;min-width:0}
.asc{display:flex;align-items:center;gap:6px;color:var(--dim);font-weight:500}
.thumb{flex:none;display:inline-block;overflow:hidden;border-radius:9px;background:#1a1a1e;border:1px solid var(--b2)}
.thumb img{display:block;width:100%;height:100%;object-fit:cover}
.empty{height:84px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--b2);border-radius:12px;color:var(--mute);animation:up .36s var(--ease) backwards}
.plan-empty{flex:1;height:auto;min-height:380px;flex-direction:column;gap:8px;border-radius:14px}

/* the plan */
.plan{flex:1;display:flex;flex-direction:column;border:1px solid var(--ac);box-shadow:0 0 0 1px color-mix(in srgb,var(--ac) 22%,transparent);transition:border-color .25s,box-shadow .25s;border-radius:14px;background:var(--plan);animation:up .36s var(--ease) backwards}
.phead{display:flex;gap:16px;padding:22px 22px 18px}
.phead .thumb{width:64px;height:64px;border-radius:14px;border-color:var(--b3)}
.pmeta{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.pasc{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--ac)}
.pmeta h1{margin:0;font-size:24px;font-weight:600;letter-spacing:-.01em}
.tags{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tag{height:24px;display:flex;align-items:center;gap:6px;padding:0 9px;border-radius:99px;border:1px solid var(--b2);background:var(--chip);color:var(--soft);font-size:12px;animation:up .36s var(--ease) backwards}
.tag .k{color:var(--mute)}
.pdesc{padding:0 22px 18px;display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:20px;border-bottom:1px solid var(--b1)}
.pdesc p{margin:0;color:var(--soft);line-height:1.6}
.muted,.none{color:var(--mute)}
.diff{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-self:start}
.dg{display:flex;flex-direction:column;gap:6px}
.dg .dbar{height:6px;border-radius:3px;background:#232328;transition:background-color .3s}
.dg .dbar.is-on{background:var(--ac)}
/* difficulty reads as a heat scale: 1 yellow, 2 orange, 3 red */
.diff.d1 .dbar.is-on{background:#facc15}
.diff.d2 .dbar.is-on{background:#fb923c}
.diff.d3 .dbar.is-on{background:#ef4444}
.diff.d1 .dl.is-cur{color:#facc15}
.diff.d2 .dl.is-cur{color:#fb923c}
.diff.d3 .dl.is-cur{color:#ef4444}
.dl{font-size:11px;text-align:center;color:var(--mute);transition:color .3s}
.dl.is-cur{color:var(--text);font-weight:600}
.shead{padding:16px 22px 6px;display:flex;align-items:baseline;justify-content:space-between}
.shead h2{margin:0;font-size:13px;font-weight:600}
.shead span{color:var(--dim);font-size:12px}
.rows{list-style:none;margin:0;padding:0 10px 10px;display:flex;flex-direction:column}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:8px;border-radius:10px;border:1px solid var(--b1);animation:up .36s var(--ease) backwards;transition:background-color .15s}
.row:hover{background:#141417}
.row .thumb{width:40px;height:40px}
.rmeta{flex:1 1 160px;min-width:0}
.rname{font-size:14px;font-weight:600}
.rmeta .asc{margin-top:3px}
.rlinks{display:flex;gap:6px}
.link{height:30px;padding:0 10px;display:flex;align-items:center;gap:6px;border:1px solid var(--b2);border-radius:8px;color:var(--soft);transition:border-color .15s,color .15s}
.link:hover{border-color:#3a3a42;color:#fff}
.none{margin:0;padding:0 22px 22px}

.foot{padding:0 24px 20px;font-size:12px;color:var(--mute)}
.foot p{margin:0;max-width:78ch;line-height:1.6}
.foot a{color:var(--dim);text-decoration:underline;text-underline-offset:2px}
.foot a:hover{color:var(--text)}

@keyframes up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes grow{from{transform:scale(0,1)}to{transform:none}}

/* on a phone the columns stack and the lines go away */
@media (max-width:900px){
  .stage{padding:16px}
  .flow{flex-direction:column;gap:22px;overflow:visible;min-height:0}
  .col,.col.is-build,.col.plan-col{flex:0 0 auto;min-width:0;width:100%}
  .conn{display:none}
  .pdesc{grid-template-columns:1fr}
  .bar,.hdr,.foot{padding-left:16px;padding-right:16px}
  .reset{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.app *,.app *::before,.app *::after{animation:none!important;transition:none!important}.node:hover{transform:none}}

/* sections */
.nav{display:flex;gap:22px;align-self:stretch}
.nav a{position:relative;display:flex;align-items:center;color:var(--dim);font-weight:500;font-size:14px;transition:color .2s}
.nav a:hover{color:var(--text)}
.nav a.is-on{color:#fff}
.nav a.is-on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--acc)}

/* tier list */
.fchips{display:flex;gap:6px;flex-wrap:wrap}
.fchip{height:30px;display:inline-flex;align-items:center;padding:0 12px;border-radius:99px;border:1px solid var(--b2);background:var(--card);color:var(--soft);font-weight:500;cursor:pointer;transition:border-color .2s,color .2s,background-color .2s}
.fchip:hover{border-color:#3a3a42;color:#fff}
.fchip.is-on,.fchip.is-on:hover{background:var(--text);color:var(--bg);border-color:var(--text)}
.fchip.is-disabled{opacity:.4;cursor:not-allowed}
.fchip.is-disabled:hover{border-color:var(--b2);color:var(--soft)}
.fsep{width:1px;height:20px;background:var(--b2)}
.view-seg{margin-left:auto}
.tnote{margin:0 0 4px;padding:12px 14px;border-radius:10px;border:1px dashed var(--b3);color:var(--mute);font-size:12px}
.tnote code{color:var(--soft)}
.tiers{padding:16px 24px 24px;display:flex;flex-direction:column;gap:10px;min-width:0;flex:1}
.trow{display:grid;grid-template-columns:88px minmax(0,1fr);border:1px solid var(--b2);border-radius:14px;overflow:hidden;background:var(--plan)}
.tlab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#0b0b0c}
.tlab b{font-size:34px;line-height:1;font-weight:700}
.tlab span{font-size:11px;font-weight:600;opacity:.7}
.tbody{display:flex;flex-wrap:wrap;gap:10px;padding:12px;min-height:96px;align-content:flex-start;align-items:flex-start}
.tbody.is-empty{align-items:center;color:var(--mute)}
.tp{position:relative;width:76px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:opacity .25s ease;animation:up .36s var(--ease) backwards}
.tp .thumb{border:2px solid var(--c);border-radius:14px;transition:transform .18s var(--ease),box-shadow .2s}
.tp:hover .thumb{transform:translateY(-3px);box-shadow:0 8px 24px -6px var(--c)}
.tn{font-size:11px;line-height:1.25;text-align:center;color:var(--soft);max-width:76px}
.tc{width:230px;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--c) 38%,transparent);background:var(--card);
  animation:up .36s var(--ease) backwards;transition:opacity .25s ease,transform .18s var(--ease),border-color .2s,background-color .2s}
.tc:hover{transform:translateY(-2px);border-color:var(--c);background:color-mix(in srgb,var(--c) 9%,#0f0f12)}
.tm{min-width:0;display:flex;flex-direction:column;gap:3px}
.df{margin-left:auto;display:flex;gap:3px}
.df i{width:5px;height:14px;border-radius:2px;background:#232328}
.df.d1 i.on{background:#facc15}.df.d2 i.on{background:#fb923c}.df.d3 i.on{background:#ef4444}
.tp.is-off,.tc.is-off{opacity:.18}
.tip{position:fixed;z-index:50;width:260px;padding:14px;border-radius:12px;border:1px solid var(--c,var(--b3));background:#0f0f12;box-shadow:0 16px 40px -10px rgba(0,0,0,.8);
  font:13px/1.45 'Inter',ui-sans-serif,system-ui,sans-serif;color:var(--text);pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s}
.tip.on{opacity:1;transform:none}
.tip h3{margin:0 0 2px;font-size:15px;font-weight:600}
.tip .a{display:flex;align-items:center;gap:6px;font-weight:500;font-size:11px;letter-spacing:.06em;margin-bottom:8px}
.tip p{margin:0 0 10px;color:var(--soft);line-height:1.5}
.tip .g{display:flex;gap:6px;flex-wrap:wrap}
.tip .g span{height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:99px;border:1px solid var(--b2);color:var(--dim);font-size:11px}
.tip .go{margin-top:10px;color:var(--mute);font-size:11px}
@media (max-width:900px){.trow{grid-template-columns:56px minmax(0,1fr)}.tlab b{font-size:24px}.tlab span{display:none}.tiers{padding:12px 16px 20px}.view-seg{margin-left:0}.tc{width:100%}}

/* game mode: a menu in the header */
.modebox{display:flex;align-items:center;gap:10px}
.lbl{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.menu{position:relative}
.menu summary{list-style:none;height:34px;display:flex;align-items:center;gap:8px;padding:0 12px;border-radius:9px;border:1px solid var(--b2);background:var(--card);color:var(--text);font-weight:500;cursor:pointer;transition:border-color .2s}
.menu summary::-webkit-details-marker{display:none}
.menu summary:hover{border-color:#3a3a42}
.menu[open] summary{border-color:var(--acc)}
.mdot{width:8px;height:8px;border-radius:50%;background:#4ade80}
.menu .pop{position:absolute;left:0;top:40px;z-index:20;width:210px;padding:6px;border-radius:12px;border:1px solid var(--b2);background:#0f0f12;box-shadow:0 16px 40px -10px rgba(0,0,0,.8)}
.menu .pop a,.menu .pop span.off{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;border-radius:8px;color:var(--soft)}
.menu .pop a{cursor:pointer}
.menu .pop a:hover{background:#1a1a1e}
.menu .pop a.is-on{color:#fff}
.menu .pop .ck{margin-left:auto;color:var(--acc)}
.menu .pop span.off{color:var(--mute);cursor:not-allowed}
.menu .pop small{margin-left:auto;color:var(--mute);font-size:11px}
@media (max-width:900px){.about{margin:0 16px 4px}.hdr{height:auto;flex-wrap:wrap;gap:8px 20px;padding:10px 16px}.nav{order:3;width:100%;align-self:auto;height:36px}.patch{order:2}}

/* the build's own links, under the tags in the plan header */
.plinks{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
