:root{
  --table:#1D4A72; --table-deep:#153A5B; --felt-line:rgba(255,255,255,.06);
  --card:#FFF6E6; --card-edge:#E9DCC4; --ink:#1F2433; --muted:#6A6558;
  --red:#E0473A; --gold:#F2B233; --on-table:#FFF6E6; --on-table-muted:#BFD0E0;
  --shadow:0 5px 0 rgba(8,22,38,.35), 0 12px 24px rgba(8,22,38,.25);
  --display:"Lilita One","Arial Rounded MT Bold","Trebuchet MS",sans-serif;
  --ui:"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --serif:"Literata",Georgia,"Times New Roman",serif;
  --fs:1.0625rem; color-scheme:light; box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --table:#0F2238; --table-deep:#0A1829; --felt-line:rgba(255,255,255,.04);
  --card:#1F2A3B; --card-edge:#2C3A50; --ink:#F1E8D6; --muted:#A9B2C0;
  --red:#F06A5C; --gold:#F5C25A; --on-table:#F1E8D6; --on-table-muted:#8FA4BA;
  --shadow:0 5px 0 rgba(0,0,0,.45), 0 12px 24px rgba(0,0,0,.35); color-scheme:dark;}}
:root[data-theme="dark"]{
  --table:#0F2238; --table-deep:#0A1829; --felt-line:rgba(255,255,255,.04);
  --card:#1F2A3B; --card-edge:#2C3A50; --ink:#F1E8D6; --muted:#A9B2C0;
  --red:#F06A5C; --gold:#F5C25A; --on-table:#F1E8D6; --on-table-muted:#8FA4BA;
  --shadow:0 5px 0 rgba(0,0,0,.45), 0 12px 24px rgba(0,0,0,.35); color-scheme:dark;}
:root[data-size="l"]{font-size:118.75%}
*,*::before,*::after{box-sizing:inherit}
html{height:100%;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 70px);-webkit-text-size-adjust:100%}
body{margin:0;min-height:100%;font-family:var(--ui);color:var(--on-table);
  background-color:var(--table);
  background-image:radial-gradient(ellipse at 50% -10%,rgba(255,255,255,.10),transparent 60%),
    repeating-linear-gradient(45deg,var(--felt-line) 0 2px,transparent 2px 7px);}
a{color:inherit}
[tabindex="-1"]:focus{outline:none}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--card);color:var(--ink);padding:8px 12px;z-index:50}
.wrap{max-width:46rem;margin:0 auto;padding-left:1.1rem;padding-right:1.1rem}

/* top bar */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:color-mix(in srgb,var(--table-deep) 92%,transparent);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:2px solid rgba(0,0,0,.18)}
.bar-in{max-width:72rem;margin:0 auto;display:flex;align-items:center;gap:.55rem;padding:.55rem 1.1rem;min-height:56px}
.brand{font-family:var(--display);font-size:1.35rem;text-decoration:none;letter-spacing:.01em;color:var(--on-table);
  text-shadow:2px 2px 0 var(--red)}
.crumb{font-weight:800;font-size:.92rem;color:var(--on-table-muted);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp{flex:1}
.chip{font:800 .85rem var(--ui);height:38px;min-width:38px;padding:0 .75rem;border-radius:999px;cursor:pointer;
  background:var(--card);color:var(--ink);border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink)}
.chip:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
.chip[aria-pressed="true"]{background:var(--gold);color:#1F2433}
.navlink{font:400 1.05rem var(--display);letter-spacing:.02em;color:var(--on-table);text-decoration:none;padding:.4rem .5rem;margin-right:.2rem;
  text-shadow:2px 2px 0 #0B1624;transition:color .15s}
.navlink:hover{color:var(--gold)}
.navlink[aria-current]{color:var(--gold)}

/* suit */
.suit{display:inline-block;width:1em;height:1em;vertical-align:-.12em}
.suit svg{width:100%;height:100%;display:block}

/* HOME */
.intro{padding-top:2.2rem;padding-bottom:1.4rem}
.intro h1{font-family:var(--display);font-weight:400;font-size:clamp(2.3rem,10vw,3.6rem);line-height:.98;margin:0 0 .9rem;
  color:var(--on-table);text-shadow:3px 3px 0 var(--red);}
.intro p{margin:0;color:var(--on-table-muted);font-weight:700;line-height:1.6;font-size:1.02rem}
.resume{display:flex;align-items:center;gap:.8rem;margin-top:1.4rem;padding:.8rem 1rem;border-radius:14px;text-decoration:none;
  background:var(--gold);color:#1F2433;border:2px solid #1F2433;box-shadow:0 4px 0 #1F2433;max-width:30rem}
.resume .suit{font-size:1.6rem}
.resume small{display:block;font-weight:800;font-size:.8rem;opacity:.8}
.resume b{font-family:var(--serif);font-weight:600}
.eras{display:flex;gap:.5rem;overflow-x:auto;padding:.3rem .1rem 1rem;margin:0 -.1rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.eras::-webkit-scrollbar{display:none}
.era-chip{flex:none;font:800 .85rem var(--ui);height:36px;padding:0 .95rem;border-radius:999px;cursor:pointer;white-space:nowrap;
  background:transparent;color:var(--on-table);border:2px solid color-mix(in srgb,var(--on-table) 45%,transparent)}
.era-chip:hover{border-color:var(--on-table)}
.era-chip[aria-pressed="true"]{background:var(--gold);color:#1F2433;border-color:#1F2433;box-shadow:0 3px 0 #1F2433}
.era-sec{padding-bottom:.6rem}
.era-sec h2{font-family:var(--display);font-weight:400;font-size:1.35rem;margin:1.2rem 0 .3rem;color:var(--on-table);letter-spacing:.01em}
.era-sec h2 small{display:block;font:700 .82rem var(--ui);color:var(--on-table-muted);margin-top:.15rem}
.decks{list-style:none;margin:0;padding:.9rem .35rem 1.4rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(9.25rem,1fr));gap:1.4rem 1rem}
@media (min-width:720px){.decks{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:1.8rem 1.5rem}}
.deck{position:relative;isolation:isolate}
.deck::before,.deck::after{content:"";position:absolute;inset:0;border-radius:18px;background:var(--card);border:2px solid var(--card-edge);z-index:-1}
.deck:nth-child(odd)::before{transform:translate(4px,5px) rotate(1.4deg);filter:brightness(.92)}
.deck:nth-child(odd)::after{transform:translate(8px,10px) rotate(2.8deg);filter:brightness(.84)}
.deck:nth-child(even)::before{transform:translate(-4px,5px) rotate(-1.2deg);filter:brightness(.92)}
.deck:nth-child(even)::after{transform:translate(-8px,10px) rotate(-2.6deg);filter:brightness(.84)}
.deck a{position:relative;display:flex;flex-direction:column;height:100%;min-height:11.5rem;text-decoration:none;
  background:var(--card);color:var(--ink);border-radius:18px;padding:1rem 1rem 1.1rem;box-shadow:var(--shadow);
  border:2px solid var(--card-edge);transition:transform .2s ease}
.deck:nth-child(odd) a{transform:rotate(-1deg)} .deck:nth-child(even) a{transform:rotate(.8deg)}
.deck a:hover,.deck a:focus-visible{transform:rotate(0) translateY(-3px)}
.deck .big{font-size:2.1rem;color:var(--red);width:1em;height:1em;margin-bottom:.55rem}
.deck .nm{font-family:var(--display);font-size:clamp(1.35rem,5.4vw,1.8rem);line-height:1;letter-spacing:.01em}
.deck .src{font:700 .74rem var(--ui);color:var(--muted);margin:.3rem 0 .5rem}
.deck .tg{font-family:var(--serif);font-size:.86rem;line-height:1.42;color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.deck .cnt{position:absolute;top:.75rem;right:.8rem;font:800 .68rem var(--ui);color:#1F2433;background:var(--gold);border-radius:999px;padding:.2rem .5rem}
.home-wrap{max-width:72rem}
.howto{padding-bottom:3rem;color:var(--on-table-muted);font-weight:600;font-size:.95rem;line-height:1.6}
.howto h2{font-family:var(--display);font-weight:400;color:var(--on-table);font-size:1.35rem;margin:0 0 .5rem}
.howto p{margin:.5rem 0;}

/* CHARACTER */
.chead{padding-top:2rem;padding-bottom:1.2rem;display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;align-items:end}
.chead .big{grid-row:1/3;font-size:4.2rem;color:var(--gold);filter:drop-shadow(3px 3px 0 var(--red))}
.chead .src{font-weight:800;color:var(--on-table-muted);font-size:.88rem;margin:0}
.chead h1{font-family:var(--display);font-weight:400;font-size:clamp(3rem,15vw,4.8rem);line-height:.9;margin:0;text-shadow:4px 4px 0 var(--red)}
.chead .tg{grid-column:1/-1;font-family:var(--serif);font-size:1.08rem;line-height:1.5;margin:.9rem 0 0;max-width:40ch}
.tally{grid-column:1/-1;display:flex;gap:.3rem;flex-wrap:wrap;margin-top:1rem;align-items:center}
.tally i{width:14px;height:14px;border-radius:50%;flex:none;border:2px solid var(--on-table);opacity:.55}
.tally i.on{background:var(--gold);border-color:var(--gold);opacity:1}
.tally span{font-weight:800;font-size:.85rem;color:var(--on-table-muted);margin-left:.4rem}
.hint{color:var(--on-table-muted);font-weight:700;font-size:.85rem;margin:0 0 .9rem}
.grid{list-style:none;margin:0;padding:0 0 2.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}
@media (min-width:640px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}}
.pc{perspective:900px;aspect-ratio:5/7}
.pc button.flip{all:unset;display:block;width:100%;height:100%;cursor:pointer;position:relative;border-radius:16px}
.pc .in{position:absolute;inset:0;transition:transform .5s cubic-bezier(.3,.7,.3,1);transform-style:preserve-3d}
.pc.open .in{transform:rotateY(180deg)}
.face{position:absolute;inset:0;border-radius:16px;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  background:var(--card);color:var(--ink);border:2px solid var(--card-edge);box-shadow:var(--shadow);overflow:hidden}
.front{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2.6rem .8rem}
.front .n{position:absolute;font-family:var(--display);font-size:2.1rem;line-height:1;color:var(--ink);text-shadow:2px 2px 0 var(--gold)}
.front .n.tl{top:.55rem;left:.7rem} .front .n.br{bottom:.55rem;right:.7rem;transform:rotate(180deg)}
.front .s{font-size:2.3rem;color:var(--red);margin-bottom:.6rem}
.front h3{font-family:var(--display);font-weight:400;font-size:clamp(1.02rem,4.2vw,1.2rem);line-height:1.12;margin:0;letter-spacing:.01em;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.stamp{position:absolute;top:.6rem;right:.55rem;transform:rotate(12deg);font:800 .62rem var(--ui);letter-spacing:.02em;
  color:var(--red);border:2px solid var(--red);border-radius:6px;padding:.1rem .35rem;background:color-mix(in srgb,var(--card) 80%,transparent)}
.back{transform:rotateY(180deg);display:flex;flex-direction:column;padding:1rem .95rem .95rem;
  background:var(--ink);color:var(--card);border-color:var(--ink)}
.back small{font-weight:800;font-size:.75rem;color:var(--gold)}
.back p{font-family:var(--serif);font-size:.86rem;line-height:1.45;margin:.4rem 0 0;flex:1;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:9;-webkit-box-orient:vertical}
.back a{margin-top:.7rem;text-align:center;text-decoration:none;font:800 .9rem var(--ui);background:var(--gold);color:#1F2433;
  border-radius:10px;padding:.55rem .5rem;border:2px solid #1F2433}
.others{padding-bottom:3rem}
.others h2{font:800 .9rem var(--ui);color:var(--on-table-muted);margin:0 0 .7rem}
.others .row{display:flex;flex-wrap:wrap;gap:.6rem}
.others a{display:inline-flex;gap:.45rem;align-items:center;text-decoration:none;background:var(--card);color:var(--ink);
  font-family:var(--display);font-size:1.05rem;padding:.45rem .9rem;border-radius:12px;box-shadow:0 3px 0 rgba(0,0,0,.3)}
.others a .suit{color:var(--red)}

/* READER */
.sheet{background:var(--card);color:var(--ink);border-radius:24px;box-shadow:var(--shadow);border:2px solid var(--card-edge);
  margin:1.4rem 0 0;padding:1.6rem 1.3rem 1.8rem;position:relative}
@media (min-width:640px){.sheet{padding:2.4rem 2.6rem 2.6rem}}
.sheet .corner{position:absolute;top:1rem;right:1.1rem;text-align:center;font-family:var(--display);font-size:2.6rem;line-height:1;
  color:var(--ink);text-shadow:3px 3px 0 var(--gold)}
.sheet .corner .suit{display:block;font-size:1.4rem;color:var(--red);margin:.25rem auto 0}
.kick{font-weight:800;font-size:.88rem;color:var(--muted);margin:0 3.5rem .7rem 0}
.kick a{color:var(--red);text-decoration:none}
.sheet h1{font-family:var(--display);font-weight:400;font-size:clamp(1.9rem,8vw,2.7rem);line-height:1.02;margin:0 3.2rem 1.1rem 0;letter-spacing:.005em}
.lead{font-family:var(--serif);font-style:italic;font-size:calc(var(--fs) + .1rem);line-height:1.6;color:var(--muted);margin:0 0 1.8rem;max-width:36em;
  padding-left:.9rem;border-left:4px solid var(--gold)}
.lead p{margin:0}
.prose{font-family:var(--serif);font-size:var(--fs);line-height:1.78;max-width:36em}
.prose h2{font-family:var(--display);font-weight:400;font-size:1.45rem;line-height:1.15;margin:2.4rem 0 .8rem;letter-spacing:.01em}
.prose p{margin:0 0 1.05rem}
.block-h{font-family:var(--display);font-weight:400;font-size:1.3rem;margin:0 0 .8rem}
.central{margin:2.6rem 0 0;padding-top:1.4rem;border-top:3px dashed var(--card-edge)}
.pesan{position:relative;margin:2.4rem -.3rem 0;padding:1.4rem 1.2rem .5rem;border-radius:18px;background:var(--red);color:#FFF6E6;
  box-shadow:0 5px 0 rgba(0,0,0,.25)}
.pesan .block-h{color:#FFF6E6;display:flex;align-items:center;gap:.5rem}
.pesan .prose{color:#FFF6E6}
.pesan .prose strong{display:block;font-family:var(--display);font-weight:400;font-size:1.15em;letter-spacing:.01em;margin-bottom:.2rem}
.pesan .prose em{font-style:normal;font-family:var(--ui);font-weight:800;font-size:.78em;opacity:.8}
.map{margin:2.4rem 0 0}
.minis{list-style:none;margin:0;padding:.2rem 0 .6rem;display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory}
.minis li{flex:0 0 9.5rem;scroll-snap-align:start;background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:.7rem .75rem;
  box-shadow:0 3px 0 var(--ink);display:flex;flex-direction:column;gap:.35rem}
.minis li.here{background:var(--gold);color:#1F2433;border-color:#1F2433;box-shadow:0 3px 0 #1F2433}
.minis .xref,.minis .here-l{font-family:var(--display);font-size:.98rem;line-height:1.15;text-decoration:none;color:inherit}
.minis .xref:hover{text-decoration:underline}
.minis .who{font:800 .7rem var(--ui);color:var(--red)}
.minis li.here .who{color:#1F2433}
.minis p{margin:0;font-size:.8rem;line-height:1.4;color:var(--muted)}
.minis li.here p{color:#3a3a3a}
details{margin:1.8rem 0 0;border-top:2px solid var(--card-edge);border-bottom:2px solid var(--card-edge)}
details+details{margin-top:0;border-top:0}
summary{cursor:pointer;padding:1rem 0;font-weight:800;list-style:none;display:flex;justify-content:space-between;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--display);font-size:1.5rem;color:var(--red);line-height:1}
details[open] summary::after{content:"\2212"}
details .body{padding:0 0 1.2rem;font-size:.92rem;line-height:1.65;color:var(--muted);max-width:40em}
details .body p{margin:0 0 .8rem} details .body strong{color:var(--ink)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:1.6rem 0 3rem}
.pager a{display:block;text-decoration:none;padding:.85rem 1rem;border-radius:14px;background:var(--card);color:var(--ink);box-shadow:0 4px 0 rgba(0,0,0,.3)}
.pager a:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.3)}
.pager small{display:block;font-weight:800;color:var(--red);font-size:.78rem;margin-bottom:.15rem}
.pager b{font-family:var(--display);font-weight:400;font-size:1.02rem;line-height:1.15;display:block}
.pager .nx{text-align:right;grid-column:2}
.pager .nx.end{background:var(--gold);color:#1F2433}
footer{color:var(--on-table-muted);font-size:.82rem;font-weight:600}
footer p{margin:0 0 .4rem}
footer .copy{font-weight:800;color:var(--on-table)}
footer .wrap{padding-top:1rem;padding-bottom:2rem;border-top:2px solid rgba(0,0,0,.18)}
.notfound{padding-top:3rem;padding-bottom:3rem}
.notfound h1{font-family:var(--display);font-weight:400}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ABOUT */
.ab-kick{font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.8rem!important;color:var(--gold)!important;margin:0 0 .4rem!important}
.about{padding-bottom:3.5rem}
.about section{margin-top:2.6rem}
.about h2{font-family:var(--display);font-weight:400;font-size:1.7rem;color:var(--on-table);text-shadow:2px 2px 0 var(--red);margin:0 0 1rem}
.about h3{font-family:var(--display);font-weight:400;font-size:1.2rem;margin:0 0 .35rem;color:var(--ink)}
.ab-p{color:var(--on-table-muted);font-weight:600;line-height:1.65;margin:1.2rem 0 0}
.ab-eq{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}
.ab-tile{background:var(--card);color:var(--ink);border:2px solid var(--ink);border-radius:14px;box-shadow:0 4px 0 var(--ink);
  padding:.7rem 1.1rem;display:flex;flex-direction:column;min-width:8rem}
.ab-tile b{font-family:var(--display);font-weight:400;font-size:1.6rem;line-height:1.1}
.ab-tile span{font-weight:800;font-size:.8rem;color:var(--muted)}
.ab-gold{background:var(--gold);color:#1F2433;border-color:#1F2433;box-shadow:0 4px 0 #1F2433}
.ab-gold span{color:#1F2433;opacity:.75}
.ab-op{font-family:var(--display);font-size:1.8rem;color:var(--gold);text-shadow:2px 2px 0 #0B1624}
.ab-quote{margin:1.4rem 0 0;padding:1rem 1.2rem;border-left:4px solid var(--gold);background:rgba(0,0,0,.15);border-radius:0 12px 12px 0}
.ab-quote p{margin:0;font-family:var(--serif);font-size:1.1rem;line-height:1.5;color:var(--on-table)}
.ab-quote p+p{font-size:.98rem;color:var(--on-table-muted);margin-top:.2rem}
.ab-quote cite{display:block;margin-top:.5rem;font-style:normal;font-weight:800;font-size:.82rem;color:var(--gold)}
.ab-steps,.ab-parts{list-style:none;margin:0;padding:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.ab-steps{grid-template-columns:repeat(4,1fr)}
@media (max-width:860px){.ab-steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.ab-steps{grid-template-columns:1fr}}
.ab-card,.ab-parts li{background:var(--card);color:var(--ink);border-radius:16px;box-shadow:var(--shadow);padding:1.1rem 1.2rem;position:relative}
.ab-card p,.ab-parts p{margin:0;line-height:1.55;font-weight:600;font-size:.95rem;color:var(--muted)}
.ab-num{display:inline-grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--red);color:#FFF6E6;
  font-family:var(--display);font-size:1.15rem;margin-bottom:.6rem;border:2px solid var(--ink)}
.ab-parts li{border-top:6px solid var(--gold);padding-top:1rem}
.ab-table{background:var(--card);color:var(--ink);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.ab-table table{width:100%;border-collapse:collapse;font-size:.95rem}
.ab-table thead th{background:var(--ink);color:var(--card);text-align:left;font:800 .78rem var(--ui);text-transform:uppercase;letter-spacing:.1em;padding:.75rem 1.1rem}
.ab-table tbody th{font-family:var(--display);font-weight:400;font-size:1.1rem;text-align:left;vertical-align:top;padding:.9rem 1.1rem;white-space:nowrap;width:1%}
.ab-table td{padding:.9rem 1.1rem .9rem 0;line-height:1.55;font-weight:600;color:var(--muted)}
.ab-table tbody tr+tr{border-top:1.5px dashed var(--card-edge)}
.ab-note{margin:1.2rem 0 0;padding:1rem 1.2rem;border-radius:14px;background:var(--gold);color:#1F2433;border:2px solid #1F2433;
  box-shadow:0 4px 0 #1F2433;font-weight:700;line-height:1.55}
.ab-end{color:var(--on-table-muted);font-weight:700}
.ab-end p{margin:0}
.ab-cta{margin-top:1rem;display:inline-flex}
@media (max-width:560px){
  .ab-table thead{display:none}
  .ab-table tr{display:block;padding:.9rem 1.1rem}
  .ab-table tbody th,.ab-table td{display:block;padding:0;white-space:normal;width:auto}
  .ab-table td{margin-top:.2rem}
  .ab-op{font-size:1.4rem}
  .ab-eq{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem .6rem}
  .ab-eq .ab-op:nth-of-type(2){grid-column:1/-1;justify-self:center;line-height:1}
  .ab-eq .ab-gold{grid-column:1/-1}
  .ab-tile{min-width:0;padding:.6rem .9rem}
  .ab-tile b{font-size:1.35rem}
}

/* TWI LABS PAGE */
.tl-ic{display:inline-grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:12px;background:var(--gold);color:#1F2433;
  border:2px solid var(--ink);margin-bottom:.7rem}
.tl-ic svg{width:1.3rem;height:1.3rem}
.tl-pillars{margin-top:1.4rem}
.tl-projects{display:grid;gap:1rem}
.tl-proj{display:flex;align-items:center;gap:1rem;background:var(--card);color:var(--ink);text-decoration:none;border-radius:16px;
  box-shadow:var(--shadow);padding:1rem 1.2rem;transition:transform .15s}
.tl-proj:hover{transform:translateY(-3px)}
.tl-proj-ic{flex:none;display:grid;place-items:center;width:3rem;height:3rem;border-radius:14px;background:var(--red);color:#FFF6E6;border:2px solid var(--ink)}
.tl-proj-ic svg{width:1.5rem;height:1.5rem}
.tl-proj-t{flex:1;display:flex;flex-direction:column;gap:.2rem}
.tl-proj-t b{font-family:var(--display);font-weight:400;font-size:1.25rem}
.tl-proj-t span{font-weight:600;font-size:.92rem;line-height:1.5;color:var(--muted)}
.tl-proj-go{font-family:var(--display);font-size:1.5rem;color:var(--red)}
.tl-build{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.2rem}
.tl-build-card{background:var(--card);color:var(--ink);border-radius:16px;box-shadow:var(--shadow);padding:1.1rem 1.2rem}
.tl-build-card p{margin:0;line-height:1.55;font-weight:600;font-size:.95rem;color:var(--muted)}
.tl-ai{background:var(--ink);color:var(--card)}
.tl-ai h3{color:var(--card)}
.tl-ai p{color:var(--card);opacity:.75}
.tl-coffee,.tl-webinc{border-radius:20px;padding:2rem 1.5rem;text-align:center}
.tl-coffee{background:var(--card);color:var(--ink);box-shadow:var(--shadow);border-top:8px solid var(--gold)}
.tl-coffee-ic{font-size:2.6rem;line-height:1;display:block;margin-bottom:.6rem}
.about .tl-coffee h2{color:var(--ink);text-shadow:2px 2px 0 var(--gold);margin-bottom:.6rem}
.tl-coffee p,.tl-webinc p{margin:0 auto 1.4rem;line-height:1.6;font-weight:600}
.tl-coffee p{color:var(--muted)}
.tl-coffee-btns{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
.tl-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.75rem 1.2rem;border-radius:14px;text-decoration:none;text-align:left;
  font-family:var(--display);font-size:1.15rem;border:2px solid #1F2433;box-shadow:0 4px 0 #1F2433;min-width:12rem;justify-content:center}
.tl-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #1F2433}
.tl-btn svg{width:1.2rem;height:1.2rem;flex:none}
.tl-btn span{display:flex;flex-direction:column;line-height:1.1}
.tl-btn small{font:800 .7rem var(--ui);opacity:.75}
.tl-btn-id{background:var(--gold);color:#1F2433}
.tl-btn-global{background:#1F2433;color:#FFF6E6;border-color:#1F2433}
.tl-btn-red{background:var(--red);color:#FFF6E6}
.tl-webinc{background:var(--table-deep);border:2px dashed rgba(255,255,255,.18)}
.tl-webinc .ab-kick{margin:0 auto .5rem!important}
.tl-webinc p{color:var(--on-table-muted)}
@media (max-width:560px){
  .tl-build{grid-template-columns:1fr}
  .tl-btn{width:100%}
}

.tl-proj[hidden]{display:none}
