:root{
    --comfort-bg1:#1a120a;
    --comfort-bg2:#3a2414;
    --comfort-amber:#e8b76b;
    --comfort-amber-dim:#a87c3f;
    --truth-bg1:#03070a;
    --truth-bg2:#0a1a1c;
    --truth-cyan:#5fd6c9;
    --truth-cyan-dim:#2a6b62;
    --truth-cyan-bright:#8fe9dd;
    --crack:#eaf6ff;
    --text-dim:#7e9794;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--truth-bg1);
    color:#dfeceb;
    font-family:Georgia,'Times New Roman',serif;
    overflow-x:hidden;
  }

  /* ============ HERO / FRACTURE STAGE ============ */
  html,body{width:100%;max-width:100%;}
  .stage{
    position:relative;
    width:100%;
    height:100vh;
    min-height:480px;
    overflow:hidden;
    cursor:pointer;
    user-select:none;
  }
  @supports (height: 100svh){
    .stage{height:100svh;}
  }
  @supports (height: 100dvh){
    .stage{height:100dvh;}
  }
  .layer{
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    flex-direction:column;text-align:center;padding:20px;
    transition:opacity .15s linear;
  }

  /* comfort */
  .comfort{
    background:radial-gradient(ellipse at 50% 30%, var(--comfort-bg2) 0%, var(--comfort-bg1) 70%);
    z-index:2;
  }
  .comfort .room-lines{position:absolute;inset:0;opacity:.55;z-index:0;}
  #comfortWeb{transform-origin:400px 300px;animation:webSpinRev 130s linear infinite;}
  #comfortWeb path{animation:webPulse 5s ease-in-out infinite;}
  .comfort h1{
    position:relative;color:var(--comfort-amber);font-weight:400;
    font-size:clamp(2.2rem,7vw,4.6rem);letter-spacing:.08em;
    margin:0 0 12px;text-shadow:0 0 18px rgba(232,183,107,.45);z-index:1;
  }
  .comfort p{
    position:relative;color:var(--comfort-amber-dim);font-family:'Courier New',monospace;
    font-size:13px;letter-spacing:.25em;text-transform:uppercase;margin:0;z-index:1;opacity:.85;
  }
  .hint{
    position:absolute;bottom:calc(28px + env(safe-area-inset-bottom));left:0;right:0;text-align:center;
    color:var(--comfort-amber-dim);font-family:'Courier New',monospace;
    font-size:11px;letter-spacing:.3em;text-transform:uppercase;opacity:.55;
    animation:pulse 2.4s ease-in-out infinite;z-index:1;
  }
  @keyframes pulse{0%,100%{opacity:.3}50%{opacity:.75}}

  /* truth */
  .truth{
    background:radial-gradient(ellipse at 50% 60%, var(--truth-bg2) 0%, var(--truth-bg1) 75%);
    z-index:1;
  }
  .truth{
    padding:clamp(22px,4vw,46px) 20px 92px;
  }
  .truth-content{
    position:relative;z-index:1;
    width:min(900px,100%);
    max-height:calc(100% - 42px);
    overflow-y:auto;
    padding:12px clamp(4px,2vw,18px) 24px;
    scrollbar-width:thin;
    scrollbar-color:var(--truth-cyan-dim) transparent;
  }
  .truth-content::-webkit-scrollbar{width:5px;}
  .truth-content::-webkit-scrollbar-track{background:transparent;}
  .truth-content::-webkit-scrollbar-thumb{background:var(--truth-cyan-dim);border-radius:999px;}
  .truth h1{
    position:relative;color:var(--truth-cyan);font-weight:400;
    font-size:clamp(1.8rem,4.8vw,3rem);letter-spacing:.03em;
    margin:0 0 16px;text-shadow:0 0 14px rgba(95,214,201,.35);line-height:1.2;z-index:1;
  }
  .truth .real-name{
    position:relative;font-family:'Courier New',monospace;font-size:clamp(10px,1.6vw,13px);letter-spacing:.25em;
    text-transform:uppercase;color:var(--truth-cyan-bright);margin-bottom:14px;opacity:.9;z-index:1;
  }
  .truth .bio{
    position:relative;max-width:790px;margin:0 auto 10px;
    font-family:Georgia,serif;font-size:clamp(.82rem,1.6vw,.96rem);line-height:1.72;
    color:var(--text-dim);z-index:1;
  }
  .truth .bio-lead{color:#a9bfbc;}
  .truth .bio b{color:var(--truth-cyan);font-weight:normal;font-style:italic;}
  .about-highlights{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;max-width:790px;margin:22px auto 0;
  }
  .highlight{
    min-height:82px;padding:13px 10px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
    border:1px solid rgba(95,214,201,.16);border-radius:7px;
    background:rgba(95,214,201,.025);
  }
  .highlight strong{
    color:var(--truth-cyan);font-family:'Courier New',monospace;
    font-size:clamp(.9rem,2vw,1.12rem);font-weight:normal;letter-spacing:.05em;
  }
  .highlight span{
    color:var(--text-dim);font-family:'Courier New',monospace;
    font-size:.62rem;line-height:1.35;letter-spacing:.12em;text-transform:uppercase;
  }
  .truth .tendrils{position:absolute;inset:0;opacity:.7;z-index:0;}
  #truthWeb{transform-origin:400px 300px;animation:webSpin 100s linear infinite;}
  #truthWeb path{animation:webPulse 4.5s ease-in-out infinite;}
  @keyframes webSpin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
  @keyframes webSpinRev{from{transform:rotate(360deg);}to{transform:rotate(0deg);}}
  @keyframes webPulse{0%,100%{opacity:.3;}50%{opacity:.65;}}
  .back-link{
    position:absolute;bottom:46px;left:50%;transform:translateX(-50%);text-align:center;
    border:0;background:transparent;padding:8px 12px;
    font-family:'Courier New',monospace;font-size:11px;letter-spacing:.3em;text-transform:uppercase;
    color:var(--truth-cyan-dim);opacity:0;pointer-events:none;transition:opacity .6s ease 1.2s, color .2s;
    z-index:10;cursor:pointer;white-space:nowrap;
  }
  .back-link:hover{color:var(--truth-cyan-bright);}
  .truth.revealed .back-link{opacity:.7;pointer-events:auto;}

  .cracks{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;}
  .cracks path{
    fill:none;stroke:var(--crack);stroke-width:1.4;stroke-linecap:round;
    filter:drop-shadow(0 0 3px rgba(234,246,255,.9));
    stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;
  }

  .glitching .comfort{animation:rgbSplitA .55s steps(2,end) 6;}
  .glitching .truth{animation:rgbSplitB .55s steps(2,end) 6;}
  @keyframes rgbSplitA{
    0%{transform:translate(0,0);}
    20%{transform:translate(6px,-2px);filter:hue-rotate(8deg);}
    40%{transform:translate(-8px,3px);filter:hue-rotate(-12deg);}
    60%{transform:translate(4px,1px) skewX(2deg);}
    80%{transform:translate(-3px,-2px);}
    100%{transform:translate(0,0);}
  }
  @keyframes rgbSplitB{
    0%{opacity:0;}
    15%{opacity:.5;transform:translate(-5px,2px);}
    35%{opacity:.7;transform:translate(7px,-3px);}
    55%{opacity:.85;transform:translate(-4px,2px);}
    75%{opacity:.95;}
    100%{opacity:1;transform:translate(0,0);}
  }
  .scanlines{
    position:absolute;inset:0;z-index:5;pointer-events:none;
    background:repeating-linear-gradient(to bottom, rgba(255,255,255,0.04) 0px, rgba(255,255,255,0.04) 1px, transparent 1px, transparent 3px);
    opacity:0;
  }
  .glitching .scanlines{opacity:1;animation:scanFlicker .55s steps(1,end) 6;}
  @keyframes scanFlicker{0%,100%{opacity:.15}50%{opacity:.55}}
  .noise{position:absolute;inset:0;z-index:6;pointer-events:none;opacity:0;mix-blend-mode:overlay;}
  .glitching .noise{opacity:.5;}
  .flash{position:absolute;inset:0;z-index:7;background:#fff;opacity:0;pointer-events:none;}
  .flashing{animation:flashPop .12s ease-out 1;}
  @keyframes flashPop{0%{opacity:0;}30%{opacity:.85;}100%{opacity:0;}}
  .vignette{position:absolute;inset:0;z-index:8;pointer-events:none;box-shadow:inset 0 0 160px rgba(0,0,0,.65);}

  /* ============ RED PAGE-TRANSITION OVERLAY ============ */
  .pt-overlay{
    position:fixed;inset:0;z-index:99999;
    pointer-events:none;background:rgba(0,0,0,0);
  }
  .pt-overlay.active{pointer-events:all;}
  .pt-overlay.blackout{background:rgba(4,0,0,1);transition:background .35s ease-in;}

  .pt-cracks{position:absolute;inset:0;opacity:0;transition:opacity 70ms linear;}
  .pt-overlay.active .pt-cracks{opacity:1;}
  .pt-cracks path{
    fill:none;stroke:#ff3b3b;stroke-width:1.5;stroke-linecap:round;
    filter:drop-shadow(0 0 4px rgba(255,59,59,.85));
    stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke;
  }

  .pt-scanlines{
    position:absolute;inset:0;opacity:0;
    background:repeating-linear-gradient(to bottom, rgba(255,80,80,0.05) 0px, rgba(255,80,80,0.05) 1px, transparent 1px, transparent 3px);
  }
  .pt-overlay.glitching .pt-scanlines{opacity:1;animation:scanFlicker .5s steps(1,end) 7;}

  .pt-noise{position:absolute;inset:0;opacity:0;mix-blend-mode:overlay;}
  .pt-overlay.glitching .pt-noise{opacity:.5;}

  .pt-flash{position:absolute;inset:0;background:#ffdede;opacity:0;}
  .pt-flash.flashing{animation:flashPop .12s ease-out 1;}

  .pt-overlay.glitching .pt-cracks,
  .pt-overlay.glitching .pt-scanlines,
  .pt-overlay.glitching .pt-noise{
    animation-name: ptShake, scanFlicker;
    animation-duration: .5s, .5s;
    animation-timing-function: steps(2,end), steps(1,end);
    animation-iteration-count: 7, 7;
  }
  @keyframes ptShake{
    0%{transform:translate(0,0);}
    20%{transform:translate(5px,-2px);}
    40%{transform:translate(-6px,3px);}
    60%{transform:translate(4px,1px);}
    80%{transform:translate(-3px,-2px);}
    100%{transform:translate(0,0);}
  }

  .pt-label{
    position:absolute;bottom:14%;left:0;right:0;text-align:center;
    font-family:'Courier New',monospace;font-size:11px;letter-spacing:.35em;
    text-transform:uppercase;color:#ff8f8f;opacity:0;
  }
  .pt-overlay.glitching .pt-label{opacity:.75;animation:pulse 0.6s ease-in-out infinite;}

  .scroll-cue{
    position:absolute;bottom:16px;left:0;right:0;text-align:center;z-index:9;
    font-family:'Courier New',monospace;font-size:10px;letter-spacing:.35em;
    color:var(--truth-cyan-dim);text-transform:uppercase;opacity:0;transition:opacity .6s ease 1.4s;
    pointer-events:none;
  }
  .truth.revealed .scroll-cue{opacity:.55;}

  @media (max-width:720px){
    .truth{padding:22px 14px 88px;}
    .truth-content{max-height:calc(100% - 30px);padding-top:4px;}
    .truth .bio{text-align:left;line-height:1.62;margin-bottom:12px;}
    .about-highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px;}
    .highlight{min-height:70px;padding:10px 7px;}
    .back-link{bottom:42px;font-size:9px;letter-spacing:.24em;}
    .scroll-cue{font-size:8px;letter-spacing:.25em;}
  }

  @media (max-height:700px) and (min-width:721px){
    .truth{padding-top:16px;padding-bottom:80px;}
    .truth-content{max-height:calc(100% - 24px);}
    .truth .real-name{margin-bottom:8px;}
    .truth h1{margin-bottom:10px;font-size:1.8rem;}
    .truth .bio{font-size:.8rem;line-height:1.52;margin-bottom:7px;}
    .about-highlights{margin-top:14px;}
    .highlight{min-height:62px;padding:8px;}
  }

  /* ============ ARCHIVE (hidden until revealed) ============ */
  .archive{
    opacity:0;
    visibility:hidden;
    height:0;
    overflow:hidden;
    transition:opacity .9s ease;
    background:
      repeating-linear-gradient(to bottom, rgba(95,214,201,0.025) 0px, rgba(95,214,201,0.025) 1px, transparent 1px, transparent 3px),
      var(--truth-bg1);
  }
  body.revealed .archive{
    opacity:1;
    visibility:visible;
    height:auto;
  }

  .archive-head{
    text-align:center;
    padding:46px 20px 10px;
    font-family:'Courier New',monospace;
    font-size:11px;letter-spacing:.3em;text-transform:uppercase;
    color:var(--truth-cyan-dim);
  }
  .archive-head .blink{
    color:var(--truth-cyan);
    animation:blinkCursor 1.1s steps(1,end) infinite;
  }
  @keyframes blinkCursor{0%,49%{opacity:1;}50%,100%{opacity:0;}}

  .log-block{
    max-width:760px;margin:0 auto;padding:36px 20px;
    border-bottom:1px solid rgba(95,214,201,.1);
  }
  .log-block:last-of-type{border-bottom:none;}
  .log-title{
    font-family:'Courier New',monospace;font-size:.78rem;letter-spacing:.25em;
    color:var(--truth-cyan-bright);text-transform:uppercase;margin-bottom:22px;
    text-shadow:0 0 10px rgba(95,214,201,.3);
  }
  .log-title::before{content:'> ';color:var(--truth-cyan-dim);}

  /* realms */
  .marquee-track{display:flex;width:max-content;animation:scroll 40s linear infinite;gap:46px;align-items:center;}
  @keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
  .marquee-wrap{overflow:hidden;border:1px solid rgba(95,214,201,.12);border-radius:6px;padding:18px 0;background:rgba(95,214,201,.02);}
  .marquee-track img{
    height:28px;width:28px;object-fit:contain;border-radius:5px;
    filter:grayscale(1) brightness(1.3);opacity:.5;transition:opacity .2s, filter .2s;
  }
  .marquee-track a:hover img{opacity:1;filter:none;}

  /* skill matrix - ascii style */
  .ascii-row{margin-bottom:18px;font-family:'Courier New',monospace;font-size:.78rem;}
  .ascii-row:last-child{margin-bottom:0;}
  .ascii-row .label{display:flex;justify-content:space-between;color:#cfe6e3;margin-bottom:6px;letter-spacing:.03em;}
  .ascii-row .label span:last-child{color:var(--truth-cyan);}
  .ascii-bar{color:var(--truth-cyan-dim);letter-spacing:1px;font-size:.8rem;overflow-wrap:break-word;}
  .ascii-bar .filled{color:var(--truth-cyan);text-shadow:0 0 6px rgba(95,214,201,.5);}

  /* certs / hof */
  .log-row{
    display:flex;gap:14px;align-items:baseline;
    padding:11px 0;font-family:'Courier New',monospace;font-size:.82rem;
    border-bottom:1px dashed rgba(95,214,201,.1);
  }
  .log-row:last-child{border-bottom:none;}
  .log-row .tag{color:var(--truth-cyan-dim);min-width:52px;flex-shrink:0;}
  .log-row a{color:#dfeceb;text-decoration:none;flex:1;}

  /* hall of fame — clean simple grid, no busy pill chips */
  .hof-logo-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
    gap:16px 20px;
    margin-top:22px;
  }
  .hof-item{
    display:flex;align-items:center;gap:10px;
    text-decoration:none;padding:4px 0;
  }
  .hof-item img{
    width:20px;height:20px;border-radius:4px;object-fit:contain;flex-shrink:0;
    filter:grayscale(1) brightness(1.3);opacity:.65;transition:opacity .2s, filter .2s;
  }
  .hof-item:hover img{opacity:1;filter:none;}
  .hof-item span{
    font-family:Georgia,serif;font-size:.85rem;color:#cfe6e3;
    transition:color .2s;
  }
  .hof-item:hover span{color:var(--truth-cyan);}
  .hof-more{
    margin-top:18px;font-family:'Courier New',monospace;font-size:.7rem;
    color:var(--truth-cyan-dim);letter-spacing:.2em;text-transform:uppercase;
  }

  /* github contributions — card layout for clear separation */
  .gh-entry{
    border:1px solid rgba(95,214,201,.1);border-radius:10px;
    padding:22px 24px;margin-bottom:18px;background:rgba(95,214,201,.015);
  }
  .gh-entry:last-of-type{margin-bottom:0;}
  .gh-head{
    display:flex;justify-content:space-between;align-items:center;
    gap:12px;flex-wrap:wrap;margin-bottom:10px;
  }
  .gh-repo{
    font-family:Georgia,serif;color:var(--truth-cyan-bright);font-size:1rem;
    text-decoration:none;letter-spacing:.01em;
  }
  .gh-repo:hover{text-decoration:underline;}
  .gh-badge{
    font-family:'Courier New',monospace;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;
    border:1px solid rgba(95,214,201,.35);border-radius:4px;padding:3px 9px;color:var(--truth-cyan-dim);
    flex-shrink:0;
  }
  .gh-badge.merged{color:#8fe9dd;border-color:rgba(95,214,201,.55);background:rgba(95,214,201,.06);}
  .gh-links{
    font-family:'Courier New',monospace;font-size:.68rem;letter-spacing:.05em;
    color:var(--truth-cyan-dim);margin-bottom:14px;
  }
  .gh-links a{color:var(--truth-cyan-dim);text-decoration:none;}
  .gh-links a:hover{color:var(--truth-cyan);text-decoration:underline;}
  .gh-links .sep{margin:0 8px;opacity:.4;}

  .gh-finding{margin-top:14px;}
  .gh-finding:first-of-type{margin-top:0;}
  .gh-finding .sev{
    display:inline-block;font-family:'Courier New',monospace;
    font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
    border-radius:4px;padding:2px 8px;margin-bottom:6px;
  }
  .sev-critical{color:#ff8a8a;border:1px solid rgba(255,138,138,.4);background:rgba(255,138,138,.06);}
  .sev-medium{color:#e8c468;border:1px solid rgba(232,196,104,.4);background:rgba(232,196,104,.06);}
  .gh-finding p{
    font-family:Georgia,serif;font-size:.88rem;line-height:1.75;color:#cfe6e3;
    margin:0;
  }
  .gh-note{
    font-family:Georgia,serif;font-size:.88rem;line-height:1.8;color:#cfe6e3;
  }
  .gh-note code{
    font-family:'Courier New',monospace;font-size:.82em;color:var(--truth-cyan);
    background:rgba(95,214,201,.08);padding:1px 5px;border-radius:3px;
  }
  .gh-note a{color:var(--truth-cyan-dim);text-decoration:underline;}
  .gh-note a:hover{color:var(--truth-cyan);}
  .gh-total{
    margin-top:22px;padding-top:18px;border-top:1px dashed rgba(95,214,201,.15);
    font-family:'Courier New',monospace;font-size:.82rem;color:var(--truth-cyan-bright);
    letter-spacing:.03em;text-align:center;
  }
  .gh-total b{color:var(--truth-cyan);font-size:.95rem;}
  .log-row a:hover{color:var(--truth-cyan);}
  .log-row span.plain{flex:1;color:#dfeceb;}
  .log-row .yr{color:var(--text-dim);font-size:.74rem;flex-shrink:0;}

  /* cves */
  .cve{margin-bottom:24px;font-family:'Courier New',monospace;}
  .cve:last-child{margin-bottom:0;}
  .cve-head{display:flex;gap:10px;align-items:baseline;margin-bottom:6px;}
  .cve-id{color:var(--truth-cyan);font-size:.85rem;letter-spacing:.05em;text-decoration:none;}
  .cve-id:hover{text-decoration:underline;}
  .cve-sev{font-size:.62rem;letter-spacing:.15em;color:var(--truth-cyan-dim);text-transform:uppercase;border:1px solid rgba(95,214,201,.25);border-radius:3px;padding:2px 6px;}
  .cve p{font-family:Georgia,serif;font-size:.86rem;line-height:1.75;color:var(--text-dim);}

  footer{
    text-align:center;padding:40px 20px;color:var(--truth-cyan-dim);
    font-family:'Courier New',monospace;font-size:.65rem;letter-spacing:.3em;text-transform:uppercase;
    border-top:1px solid rgba(95,214,201,.1);
  }
