
  :root{
    --paper: #FAF7F0;
    --paper-dim: #F1ECE0;
    --ink: #1C1F2B;
    --ink-soft: #4A4E5C;
    --rule: #DCD5C4;
    --navy: #1B3A6B;
    --slate: #6E93B7;
    --gold: #8C6A00;
    --mail-red: #D93025;
    --phone-green: #1B8A44;
    --li-blue: #0A66C2;
    --ig-purple: #833AB4;
    --ig-orange: #F9A61A;
    --lang-orange: #E8871E;
    --max: 880px;
  }
  html[data-theme="dark"]{
    color-scheme:dark;
    --paper:#10131A;
    --paper-dim:#181D27;
    --ink:#F4F0E7;
    --ink-soft:#C3C8D3;
    --rule:#363E4D;
    --navy:#91B9FF;
    --slate:#A9C9E8;
    --gold:#E1C66A;
    --mail-red:#FF756D;
    --phone-green:#65CF8A;
    --li-blue:#67AEF4;
    --ig-purple:#C08BE3;
    --ig-orange:#FFC269;
    --lang-orange:#F3A956;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  .soft-aurora{
    position:fixed; inset:0; width:100%; height:100%; z-index:0;
    pointer-events:none; opacity:.52;
    background:radial-gradient(circle at 18% 15%, rgba(110,147,183,.10), transparent 42%),
               radial-gradient(circle at 82% 72%, rgba(140,106,0,.08), transparent 45%);
  }
  html[data-theme="dark"] .soft-aurora{
    opacity:.62;
    background:radial-gradient(circle at 18% 15%, rgba(79,126,190,.14), transparent 42%),
               radial-gradient(circle at 82% 72%, rgba(225,198,106,.10), transparent 45%);
  }
  body > nav,
  body > header,
  body > section,
  body > footer{ position:relative; z-index:1; }
  ::selection{ background:var(--navy); color:var(--paper); }

  a{ color:inherit; }
  .wrap{ max-width:var(--max); margin:0 auto; padding:0 28px; }

  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--navy);
    font-weight:600;
  }

  h1,h2,h3{ font-family:'Fraunces',serif; margin:0; color:var(--ink); }

  /* ---------- NAV ---------- */
  nav{
    position:sticky; top:0; z-index:50;
    background:rgba(250,247,240,.88);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--rule);
    animation:nav-drop .65s cubic-bezier(.22,.61,.36,1) both;
    transition:box-shadow .3s ease, background .3s ease;
  }
  nav.scrolled{
    background:rgba(250,247,240,.95);
    box-shadow:0 8px 24px rgba(28,31,43,.08);
  }
  html[data-theme="dark"] nav{
    background:rgba(16,19,26,.88);
    border-bottom-color:var(--rule);
  }
  html[data-theme="dark"] nav.scrolled{
    background:rgba(16,19,26,.96);
    box-shadow:0 8px 28px rgba(0,0,0,.34);
  }
  @keyframes nav-drop{
    from{ opacity:0; transform:translateY(-100%); }
    to{ opacity:1; transform:translateY(0); }
  }
  nav .wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:56px;
  }
  nav .brand,
  nav .brand:link,
  nav .brand:visited,
  nav .brand:hover,
  nav .brand:active{
    font-family:'IBM Plex Mono',monospace;
    font-weight:600; font-size:14px; letter-spacing:.02em;
    color:inherit;
    text-decoration:none;
    transition:color .2s ease, transform .2s ease, letter-spacing .2s ease;
  }
  nav .brand:hover{ color:var(--navy); transform:translateY(-1px); letter-spacing:.045em; }
  nav .brand span{ color:var(--navy); }
  nav ul{
    list-style:none; display:flex; gap:26px; margin:0; padding:0;
  }
  nav ul a{
    font-family:'IBM Plex Mono',monospace;
    font-size:12.5px; text-decoration:none; color:var(--ink-soft);
    letter-spacing:.03em;
    position:relative;
    transition:color .2s ease, transform .2s ease;
  }
  nav ul a::after{
    content:""; position:absolute; left:0; right:0; bottom:-18px;
    height:2px; border-radius:2px; background:var(--navy);
    transform:scaleX(0); transform-origin:center;
    transition:transform .28s cubic-bezier(.22,.61,.36,1);
  }
  nav ul a:hover{ color:var(--navy); transform:translateY(-1px); }
  nav ul a:hover::after,
  nav ul a.active::after{ transform:scaleX(1); }
  .nav-toggle{ display:none; }

  /* ---------- THEME SWITCH ---------- */
  .theme-switch-dock{
    position:fixed; top:68px; right:18px; z-index:45;
    display:flex; align-items:center; gap:10px;
    padding:5px 7px 5px 12px; border:1px solid var(--rule); border-radius:999px;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    box-shadow:0 7px 22px rgba(28,31,43,.12); backdrop-filter:blur(9px);
  }
  .theme-switch-name{
    display:inline-flex; align-items:center; gap:7px; white-space:nowrap;
    font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700;
    letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase;
  }
  .theme-switch{
    position:relative; width:236px; height:40px; padding:3px;
    display:grid; grid-template-columns:1fr 1fr; align-items:center;
    border:1px solid var(--rule); border-radius:999px;
    background:color-mix(in srgb, var(--paper-dim) 92%, transparent);
    box-shadow:0 7px 22px rgba(28,31,43,.15), inset 0 1px rgba(255,255,255,.25);
    backdrop-filter:blur(8px); cursor:pointer;
    transition:background .3s ease, border-color .3s ease, box-shadow .3s ease;
  }
  .theme-switch:focus-visible{ outline:3px solid color-mix(in srgb, var(--navy) 55%, transparent); outline-offset:3px; }
  .theme-option{
    position:relative; z-index:2; display:flex; align-items:center; justify-content:center; gap:6px;
    font-family:'IBM Plex Mono',monospace; font-size:9.5px; font-weight:600;
    letter-spacing:.025em; line-height:1; color:var(--ink-soft); opacity:.56;
    transition:transform .3s ease, color .3s ease, opacity .3s ease;
  }
  .theme-emoji{
    font-size:17px; line-height:1; filter:grayscale(.7);
    transition:filter .3s ease;
  }
  .theme-icon-sun{
    color:#7B4700; opacity:1; transform:scale(1.03);
  }
  .theme-icon-sun .theme-emoji{ filter:drop-shadow(0 0 4px #FF9D2E) drop-shadow(0 0 8px rgba(255,157,46,.75)); }
  .theme-switch-thumb{
    position:absolute; z-index:1; top:3px; left:3px; width:calc(50% - 3px); height:32px;
    border:2px solid #FF9D2E; border-radius:999px; background:#FFF9E4;
    box-shadow:0 0 0 2px rgba(255,157,46,.18), 0 0 12px rgba(255,157,46,.78), 0 0 24px rgba(255,157,46,.38);
    transition:transform .38s cubic-bezier(.34,1.56,.64,1), background .3s ease;
  }
  html[data-theme="dark"] .theme-switch{
    box-shadow:0 7px 24px rgba(0,0,0,.38), inset 0 1px rgba(255,255,255,.08);
  }
  html[data-theme="dark"] .theme-switch-dock{
    background:rgba(16,19,26,.88); box-shadow:0 7px 24px rgba(0,0,0,.34);
  }
  html[data-theme="dark"] .theme-switch-thumb{
    transform:translateX(115px); background:#293449;
    box-shadow:0 0 0 2px rgba(255,157,46,.20), 0 0 13px rgba(255,157,46,.85), 0 0 27px rgba(255,157,46,.42);
  }
  html[data-theme="dark"] .theme-icon-sun{ color:var(--ink-soft); opacity:.42; transform:scale(.96); }
  html[data-theme="dark"] .theme-icon-sun .theme-emoji{ filter:grayscale(.8); }
  html[data-theme="dark"] .theme-icon-moon{
    color:#FFD39A; opacity:1; transform:scale(1.03);
  }
  html[data-theme="dark"] .theme-icon-moon .theme-emoji{ filter:drop-shadow(0 0 4px #FF9D2E) drop-shadow(0 0 8px rgba(255,157,46,.78)); }

  /* ---------- EDUCATION PAGE HEADER ---------- */
  header.edu-header{
    padding:60px 0 44px;
    border-bottom:1px solid var(--rule);
  }
  .back-link{
    display:inline-flex; align-items:center; gap:7px;
    font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600;
    color:var(--ink-soft); text-decoration:none; margin-bottom:28px;
    transition:color .2s ease, transform .2s ease;
  }
  .back-link svg{ width:14px; height:14px; transition:transform .25s ease; }
  .back-link:hover{ color:var(--navy); }
  .back-link:hover svg{ transform:translateX(-4px); }
  .edu-title{
    font-family:'Fraunces',serif; font-size:clamp(38px,6vw,58px); font-weight:600;
    letter-spacing:-.01em; line-height:1.05; margin-top:8px;
  }
  .edu-sub{
    margin-top:16px; max-width:64ch; color:var(--ink-soft); font-size:15.5px; line-height:1.65;
  }

  /* ---------- HERO ---------- */
  header.hero{
    padding:76px 0 40px;
    border-bottom:1px solid var(--rule);
    overflow:hidden;
  }
  .hero-grid{
    max-width:100%;
  }
  .hero h1{
    font-size:clamp(52px,9.5vw,96px);
    line-height:.92;
    font-weight:600;
    letter-spacing:-.045em;
  }
  .warp-filter-defs{
    position:absolute; width:0; height:0; overflow:hidden; pointer-events:none;
  }
  .warp-text{
    display:inline-block;
    filter:url(#hero-warp-filter);
    transform:perspective(700px) rotateX(var(--warp-rotate-x, 0deg)) rotateY(var(--warp-rotate-y, 0deg));
    transform-origin:center;
    will-change:filter, transform;
    cursor:default;
    transition:transform .18s ease-out, text-shadow .3s ease;
  }
  .warp-text:hover{
    text-shadow:0 10px 28px rgba(27,58,107,.13);
  }
  /* ---------- GOLF TITLE SEQUENCE ---------- */
  .golf-title-stage{
    position:relative; min-height:132px; width:100%;
    display:flex; align-items:center; overflow:visible;
    isolation:isolate;
  }
  .golf-title-stage .warp-text{ position:relative; z-index:2; }
  .golf-club{
    position:absolute; left:8px; bottom:25px; width:76px; height:104px;
    z-index:5; transform-origin:18px 9px; opacity:0;
  }
  .golf-grip{
    position:absolute; left:13px; top:0; width:10px; height:24px;
    border-radius:6px; background:linear-gradient(90deg, #1c1f2b, #4a4e5c);
    transform:rotate(-5deg);
  }
  .golf-shaft{
    position:absolute; left:17px; top:18px; width:3px; height:76px;
    border-radius:2px; background:linear-gradient(#8b93a0, #d8dce2, #727a86);
    transform:rotate(-5deg); transform-origin:top;
  }
  .golf-club-head{
    position:absolute; left:13px; top:88px; width:31px; height:13px;
    border-radius:4px 10px 5px 4px;
    background:linear-gradient(135deg, #202733, #788491 52%, #303946);
    box-shadow:0 3px 7px rgba(28,31,43,.22);
    transform:rotate(8deg);
  }
  .golf-ball{
    position:absolute; left:64px; bottom:24px; width:15px; height:15px;
    border-radius:50%; z-index:6; opacity:0;
    background:
      radial-gradient(circle at 35% 32%, #fff 0 23%, transparent 24%),
      radial-gradient(circle at 65% 62%, rgba(110,147,183,.22) 0 9%, transparent 10%),
      #f8f8f5;
    border:1px solid rgba(28,31,43,.18);
    box-shadow:0 4px 9px rgba(28,31,43,.22);
  }
  .bounce-effect{
    position:absolute; bottom:10px; width:27px; height:8px; z-index:5;
    border:2px solid rgba(140,106,0,.68); border-radius:50%; opacity:0;
    transform:translateX(-50%) scale(.2);
    box-shadow:0 0 8px rgba(140,106,0,.28);
  }
  .bounce-effect::before,
  .bounce-effect::after{
    content:""; position:absolute; top:-5px; width:4px; height:4px;
    border-radius:50%; background:var(--gold); opacity:.8;
  }
  .bounce-effect::before{ left:3px; }
  .bounce-effect::after{ right:3px; }
  .bounce-effect-one{ left:62%; }
  .bounce-effect-two{ left:79%; }
  .golf-finish{
    position:absolute; right:0; bottom:12px; width:52px; height:104px;
    z-index:4; opacity:0;
  }
  .flagstick{
    position:absolute; right:18px; bottom:8px; width:3px; height:90px;
    border-radius:2px; background:linear-gradient(90deg, #8f1010, #ef4444 48%, #a51212);
    transform-origin:bottom;
  }
  .golf-flag{
    position:absolute; right:20px; top:7px; width:34px; height:22px;
    background:linear-gradient(135deg, var(--navy), var(--li-blue));
    clip-path:polygon(100% 0, 100% 100%, 0 48%);
    transform-origin:right center;
    filter:drop-shadow(0 3px 4px rgba(27,58,107,.18));
  }
  .golf-hole{
    position:absolute; right:8px; bottom:0; width:27px; height:8px;
    border-radius:50%; background:#171b22;
    box-shadow:inset 0 2px 2px rgba(0,0,0,.55), 0 0 0 3px rgba(140,106,0,.12);
  }
  .golf-title-stage.golf-play .warp-text{
    animation:golf-name-reveal 3.9s cubic-bezier(.22,.61,.36,1) both;
  }
  .golf-title-stage.golf-play .golf-club{
    animation:golf-club-swing 3.9s cubic-bezier(.22,.61,.36,1) both;
  }
  .golf-title-stage.golf-play .golf-ball{
    animation:golf-ball-flight 3.9s linear both;
  }
  .golf-title-stage.golf-play .golf-finish{
    animation:golf-finish-arrive 3.9s ease both;
  }
  .golf-title-stage.golf-play .bounce-effect-one{ animation:bounce-impact-one 3.9s ease-out both; }
  .golf-title-stage.golf-play .bounce-effect-two{ animation:bounce-impact-two 3.9s ease-out both; }
  .golf-title-stage.golf-play .golf-flag{
    animation:golf-flag-wave .75s ease-in-out 2.5s 2 alternate;
  }
  @keyframes golf-name-reveal{
    0%, 17%{ clip-path:inset(-30% 100% -30% 0); opacity:.15; }
    65%, 100%{ clip-path:inset(-30% 0 -30% 0); opacity:1; }
  }
  @keyframes golf-club-swing{
    0%{ opacity:0; transform:translate(-12px,-4px) rotate(48deg); }
    8%{ opacity:1; }
    18%{ transform:translate(0,0) rotate(54deg); }
    28%{ transform:translate(25px,2px) rotate(-62deg); }
    38%{ opacity:1; transform:translate(47px,-4px) rotate(-78deg); }
    58%, 100%{ opacity:0; transform:translate(58px,-9px) rotate(-84deg); }
  }
  @keyframes golf-ball-flight{
    0%, 26%{ left:64px; bottom:24px; opacity:0; transform:rotate(0); }
    27%{ opacity:1; }
    45%{ left:36%; bottom:92px; opacity:1; transform:rotate(260deg); }
    62%{ left:62%; bottom:17px; opacity:1; transform:rotate(560deg); }
    70%{ left:72%; bottom:45px; opacity:1; transform:rotate(680deg); }
    77%{ left:79%; bottom:15px; opacity:1; transform:rotate(790deg); }
    89%{ left:calc(100% - 48px); bottom:13px; opacity:1; transform:rotate(1040deg) scale(1); }
    94%{ left:calc(100% - 31px); bottom:11px; opacity:1; transform:rotate(1160deg) scale(.82); }
    96%, 100%{ left:calc(100% - 29px); bottom:8px; opacity:0; transform:rotate(1200deg) scale(.42); }
  }
  @keyframes golf-finish-arrive{
    0%, 52%{ opacity:0; transform:translateY(10px); }
    68%, 100%{ opacity:1; transform:translateY(0); }
  }
  @keyframes bounce-impact-one{
    0%, 60%{ opacity:0; transform:translateX(-50%) scale(.2); }
    62%{ opacity:.9; transform:translateX(-50%) scale(.65); }
    68%, 100%{ opacity:0; transform:translateX(-50%) scale(1.9); }
  }
  @keyframes bounce-impact-two{
    0%, 75%{ opacity:0; transform:translateX(-50%) scale(.2); }
    77%{ opacity:.75; transform:translateX(-50%) scale(.55); }
    83%, 100%{ opacity:0; transform:translateX(-50%) scale(1.55); }
  }
  @keyframes golf-flag-wave{
    from{ transform:skewY(-3deg) scaleX(.92); }
    to{ transform:skewY(5deg) scaleX(1.06); }
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(90deg, var(--navy) 0%, var(--gold) 25%, var(--navy) 50%);
    background-size:200% auto;
    -webkit-background-clip:text; background-clip:text; color:transparent;
    animation:name-shimmer 5s linear infinite;
  }
  @keyframes name-shimmer{
    0%{ background-position:0% 50%; }
    100%{ background-position:200% 50%; }
  }
  .hero p.role{
    width:100%;
    font-family:'IBM Plex Mono',monospace;
    font-size:14px; color:var(--ink-soft);
    margin-top:22px; padding-bottom:14px;
    letter-spacing:.04em; border-bottom:1px solid var(--rule);
  }
  .hero-photo{
    margin:26px 0 0; width:100%; border-radius:8px; overflow:hidden;
    border:1px solid var(--rule);
  }
  .hero-photo img{
    width:100%; height:auto; display:block;
    transition:transform .5s cubic-bezier(.22,.61,.36,1);
  }
  .hero-photo:hover img{ transform:scale(1.035); }
  .hero .summary{
    margin-top:26px; color:var(--ink-soft); font-size:15.5px;
    max-width:74ch;
  }
  .hero .summary p{
    margin:0 0 16px;
  }
  .hero .summary p:last-child{ margin-bottom:0; }
  .who-am-i{
    margin-top:30px; padding:26px 28px 28px; border:1px solid rgba(27,58,107,.18);
    border-radius:12px; background:rgba(250,247,240,.68);
    box-shadow:0 14px 34px rgba(27,58,107,.08);
    backdrop-filter:blur(5px);
  }
  html[data-theme="dark"] .who-am-i{
    background:rgba(24,29,39,.78); box-shadow:0 14px 36px rgba(0,0,0,.22);
  }
  html[data-theme="dark"] .hero-photo img{ filter:brightness(.88) contrast(1.04); }
  .who-am-i .who-am-i-head{ margin-bottom:20px; }
  .who-am-i .section-kicker{ color:var(--navy); }
  .who-am-i h2, .who-am-i .idx{ font-size:clamp(30px,4vw,40px); line-height:1.1; }
  .who-am-i .summary{ margin-top:14px; max-width:none; }

  /* hero contact buttons */
  .hero-contact-row{
    display:flex; flex-direction:column; align-items:center; gap:12px; margin-top:28px;
  }
  .hbtn-row{
    display:flex; flex-wrap:wrap; justify-content:center; width:100%; gap:38px;
  }
  .hbtn{
    display:inline-flex; align-items:center; gap:11px;
    padding:14px 26px; border-radius:999px;
    border:1.5px solid var(--rule); background:var(--paper-dim);
    font-family:'IBM Plex Mono',monospace; font-size:14px;
    text-decoration:none; color:var(--ink); letter-spacing:.01em;
    position:relative; overflow:hidden;
    transition:background .22s ease, border-color .22s ease, color .22s ease,
               box-shadow .3s ease, transform .18s ease;
  }
  .hbtn::after{
    content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
    background:linear-gradient(115deg, transparent, rgba(255,255,255,.55), transparent);
    transform:skewX(-20deg); pointer-events:none;
  }
  .hbtn:hover::after{
    animation:hbtn-shine .85s ease;
  }
  @keyframes hbtn-shine{
    0%{ left:-60%; }
    100%{ left:130%; }
  }
  .hbtn svg{ width:18px; height:18px; flex-shrink:0; transition:color .22s ease; }
  .hbtn:hover{ transform:translateY(-2px); }
  .hbtn-detail{
    white-space:nowrap;
  }
  .hbtn-detail::before{ content:"— "; opacity:.85; }

  .hbtn.mail{
    border-color:rgba(217,48,37,.55);
    box-shadow:0 0 0 1px rgba(217,48,37,.25), 0 0 10px rgba(217,48,37,.35), 0 0 22px rgba(217,48,37,.2);
  }
  .hbtn.phone{
    border-color:rgba(27,138,68,.55);
    box-shadow:0 0 0 1px rgba(27,138,68,.25), 0 0 10px rgba(27,138,68,.35), 0 0 22px rgba(27,138,68,.2);
  }
  .hbtn.linkedin{
    border-color:rgba(10,102,194,.55);
    box-shadow:0 0 0 1px rgba(10,102,194,.25), 0 0 10px rgba(10,102,194,.35), 0 0 22px rgba(10,102,194,.2);
  }
  .hbtn.instagram{
    border-color:rgba(131,58,180,.55);
    box-shadow:0 0 0 1px rgba(131,58,180,.25), 0 0 10px rgba(131,58,180,.35), 0 0 22px rgba(249,166,26,.2);
  }
  .hbtn.mail:hover{
    background:var(--mail-red); border-color:var(--mail-red); color:#fff;
    box-shadow:0 0 0 1px rgba(217,48,37,.6),
               0 0 12px rgba(217,48,37,.65),
               0 0 28px rgba(217,48,37,.55),
               0 0 56px rgba(217,48,37,.35);
  }
  .hbtn.phone:hover{
    background:var(--phone-green); border-color:var(--phone-green); color:#fff;
    box-shadow:0 0 0 1px rgba(27,138,68,.6),
               0 0 12px rgba(27,138,68,.65),
               0 0 28px rgba(27,138,68,.55),
               0 0 56px rgba(27,138,68,.35);
  }
  .hbtn.linkedin:hover{
    background:var(--li-blue); border-color:var(--li-blue); color:#fff;
    box-shadow:0 0 0 1px rgba(10,102,194,.6),
               0 0 12px rgba(10,102,194,.65),
               0 0 28px rgba(10,102,194,.55),
               0 0 56px rgba(10,102,194,.35);
  }
  .hbtn.instagram:hover{
    background:linear-gradient(135deg, #7024C4 0%, #C1348A 45%, #F9A61A 100%);
    border-color:transparent; color:#fff;
    box-shadow:0 0 0 1px rgba(131,58,180,.6),
               0 0 12px rgba(193,52,138,.6),
               0 0 28px rgba(249,166,26,.5),
               0 0 56px rgba(131,58,180,.35);
  }

  /* ---------- SECTIONS ---------- */
  section{ padding:56px 0; border-bottom:1px solid var(--rule); position:relative; }
  section:last-of-type{ border-bottom:none; }
  section::before{
    content:''; position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, transparent, var(--section-accent, var(--navy)), transparent);
    opacity:.55;
  }
  #education{ --section-accent:var(--navy); }
  #experience{ --section-accent:var(--li-blue); }
  #projects{ --section-accent:var(--gold); }
  #skills{ --section-accent:var(--phone-green); }
  #hobbies{ --section-accent:var(--ig-purple); }
  #contact-page{ --section-accent:var(--mail-red); background:var(--paper-dim); }
  .section-head{
    margin-bottom:36px;
  }
  .section-kicker{
    display:block; font-family:'IBM Plex Mono',monospace; font-size:12px;
    letter-spacing:.16em; text-transform:uppercase; color:var(--section-accent, var(--gold));
    margin-bottom:8px; font-weight:600;
    transition:letter-spacing .3s ease;
  }
  .section-head.in .section-kicker{ letter-spacing:.22em; }
  .section-head-row{
    display:flex; align-items:baseline; gap:16px;
  }
  .section-head-with-action{ align-items:center; width:100%; }
  .section-head-with-action .know-more{
    margin:0 0 0 auto; flex-shrink:0;
  }
  .section-head h2{
    font-size:clamp(32px,4.5vw,46px); font-weight:700; letter-spacing:-.015em;
    line-height:1.05;
  }
  .section-head h2 em{ font-style:italic; color:var(--navy); }
  .section-head .idx{
    font-family:'IBM Plex Mono',monospace; color:var(--rule);
    font-size:clamp(32px,4.5vw,46px); font-weight:500;
  }
  .section-head-rule{
    display:block; width:64px; height:4px; margin-top:14px; border-radius:2px;
    background:linear-gradient(90deg, var(--section-accent, var(--navy)), var(--gold), var(--section-accent, var(--navy)));
    background-size:200% 100%;
    animation:rule-shimmer 3.5s ease-in-out infinite;
  }
  @keyframes rule-shimmer{
    0%{ background-position:0% 50%; }
    50%{ background-position:100% 50%; }
    100%{ background-position:0% 50%; }
  }

  /* education / experience entries */
  .entry{
    display:grid; grid-template-columns:150px 1fr; gap:24px;
    padding:20px 0; border-top:1px solid var(--rule);
    transition:padding-left .3s ease, border-color .3s ease;
  }
  .entry:hover{
    padding-left:6px; border-color:var(--section-accent, var(--navy));
  }
  .entry:first-of-type{ border-top:none; }
  .know-more{
    display:flex; width:max-content; align-items:center; gap:8px;
    margin:28px auto 0; padding:12px 20px; border-radius:999px;
    border:1.5px solid var(--section-accent, var(--navy));
    background:var(--paper-dim);
    font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600;
    color:var(--section-accent, var(--navy)); text-decoration:none;
    letter-spacing:.02em;
    transition:background .22s ease, color .22s ease, transform .18s ease, box-shadow .3s ease;
  }
  .know-more svg{ width:15px; height:15px; transition:transform .25s ease; }
  .know-more:hover{
    background:var(--section-accent, var(--navy)); color:#fff;
    transform:translateY(-2px);
    box-shadow:0 8px 20px rgba(27,58,107,.25);
  }
  .know-more:hover svg{ transform:translateX(4px); }
  .know-more.neon-detail{
    box-shadow:0 0 7px color-mix(in srgb, var(--section-accent, var(--navy)) 45%, transparent),
               0 0 18px color-mix(in srgb, var(--section-accent, var(--navy)) 28%, transparent),
               inset 0 0 8px color-mix(in srgb, var(--section-accent, var(--navy)) 10%, transparent);
    animation:neon-detail-breathe 2.6s ease-in-out infinite;
  }
  .know-more.neon-detail:hover{
    animation:none;
    box-shadow:0 0 10px var(--section-accent, var(--navy)),
               0 0 28px color-mix(in srgb, var(--section-accent, var(--navy)) 68%, transparent),
               0 0 44px color-mix(in srgb, var(--section-accent, var(--navy)) 34%, transparent);
  }
  @keyframes neon-detail-breathe{
    0%, 100%{ filter:brightness(1); }
    50%{ filter:brightness(1.16); box-shadow:0 0 10px color-mix(in srgb, var(--section-accent, var(--navy)) 62%, transparent), 0 0 25px color-mix(in srgb, var(--section-accent, var(--navy)) 38%, transparent); }
  }

  #experience .entry.reveal,
  #experience-detail .entry.reveal{
    opacity:1; transform:none;
    transition:padding-left .3s ease, border-color .3s ease;
  }
  .entry .when{
    font-family:'IBM Plex Mono',monospace; font-size:13.5px; font-weight:600; color:var(--ink-soft);
    padding-top:3px;
  }
  .entry .when-current{
    font-weight:700; color:var(--navy);
    display:flex; align-items:center; gap:7px;
  }
  .when-current::before{
    content:''; width:7px; height:7px; border-radius:50%;
    background:var(--navy); flex-shrink:0;
    animation:pulse-dot 1.8s ease-in-out infinite;
  }
  @keyframes pulse-dot{
    0%, 100%{ box-shadow:0 0 0 0 rgba(27,58,107,.5); }
    50%{ box-shadow:0 0 0 5px rgba(27,58,107,0); }
  }
  .entry h3{ font-size:19px; font-weight:600; }
  .entry .org{
    font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--slate);
    margin-top:3px;
  }
  .entry ul{ margin:12px 0 0; padding-left:18px; }
  .entry li{ margin-bottom:6px; font-size:14.8px; color:var(--ink-soft); }
  .entry li::marker{ color:var(--navy); }
  .entry-lead{
    margin:14px 0 0; font-size:14.8px; color:var(--ink-soft); line-height:1.65;
  }
  .key-contrib-label{
    font-family:'IBM Plex Mono',monospace; font-size:11px; text-transform:uppercase;
    letter-spacing:.08em; color:var(--navy); margin-top:16px;
  }
  .eval-stats{
    display:flex; flex-wrap:wrap; gap:22px 32px; margin-top:18px;
    padding-top:16px; border-top:1px solid var(--rule);
  }
  .eval-stat{ display:flex; flex-direction:column; gap:3px; }
  .eval-stat .num{
    font-family:'Fraunces',serif; font-size:clamp(32px,4vw,40px); font-weight:700; color:var(--navy);
    line-height:1; display:inline-block;
    opacity:1; transform:none;
  }
  .eval-stat .lbl{
    font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--ink-soft);
    letter-spacing:.02em; max-width:20ch;
  }
  .eval-note{
    margin:14px 0 0; font-size:13.5px; color:var(--ink-soft); line-height:1.6;
  }
  .report-link{
    display:inline-flex; align-items:center; margin-top:14px;
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:600;
    letter-spacing:.03em; color:var(--navy); text-decoration:none;
    border-bottom:1px solid currentColor; padding-bottom:2px;
  }
  .report-link:hover{ color:var(--ink); }
  .testimonials{
    margin-top:16px; display:flex; flex-direction:column; gap:10px;
  }
  .testimonials-label{
    align-self:flex-start; padding:7px 12px; border-radius:6px;
    border-left:4px solid var(--navy); background:rgba(27,58,107,.10);
    font-family:'IBM Plex Mono',monospace; font-size:13.5px; font-weight:700; text-transform:uppercase;
    letter-spacing:.1em; color:var(--navy); margin-bottom:4px;
  }
  .testimonials blockquote{
    margin:0; padding:12px 16px; border-left:2.5px solid var(--navy);
    background:var(--paper-dim); font-family:'Fraunces',serif; font-style:italic;
    font-size:16px; color:var(--ink); line-height:1.6;
  }
  .badge{
    display:inline-flex; align-items:center; gap:6px;
    font-family:'IBM Plex Mono',monospace; font-size:11px;
    color:#6b5000; border:1px solid var(--gold); border-radius:999px;
    background:linear-gradient(135deg, rgba(140,106,0,.10), rgba(140,106,0,.02));
    padding:5px 12px 5px 10px; margin-top:10px; letter-spacing:.02em; font-weight:600;
    transition:box-shadow .25s ease, transform .18s ease, background .25s ease;
  }
  .badge::before{
    content:'🏆'; font-size:11px; line-height:1;
  }
  .badge:hover{
    box-shadow:0 0 0 1px rgba(140,106,0,.35), 0 0 12px rgba(140,106,0,.4);
    transform:translateY(-2px) scale(1.02);
    background:linear-gradient(135deg, rgba(140,106,0,.18), rgba(140,106,0,.05));
  }
  .badge-sep{
    display:inline-block; margin:10px 6px 0; color:var(--ink-soft); font-size:11px;
  }
  .badge-note{
    margin:8px 0 0; font-size:12.5px; font-style:italic; color:var(--ink-soft);
  }
  .strong-highlight{
    font-weight:800; color:var(--navy);
  }

  /* skills */
  .skills-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; }
  .skill-block .label{
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase;
    letter-spacing:.08em; color:var(--navy); margin-bottom:10px;
  }
  .chip-row{ display:flex; flex-wrap:wrap; gap:10px; }
  .chip-row.vertical{ flex-direction:column; align-items:flex-start; }
  .chip-row.vertical .chip{ width:100%; }
  .chip{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'IBM Plex Mono',monospace; font-size:12.5px;
    background:var(--paper-dim); border:1px solid var(--rule); border-radius:8px;
    padding:9px 14px 9px 12px; color:var(--ink);
    position:relative; overflow:hidden;
    opacity:0; transform:translateY(10px);
    transition:transform .18s ease, border-color .2s ease, box-shadow .3s ease,
               opacity .5s ease, transform .5s ease;
  }
  .skill-block.in .chip{ opacity:1; transform:translateY(0); }
  .skill-block.in .chip:nth-child(1){ transition-delay:.05s; }
  .skill-block.in .chip:nth-child(2){ transition-delay:.12s; }
  .skill-block.in .chip:nth-child(3){ transition-delay:.19s; }
  .skill-block.in .chip:nth-child(4){ transition-delay:.26s; }
  .skill-block.in .chip:nth-child(5){ transition-delay:.33s; }
  .chip::before{
    content:''; width:4px; align-self:stretch; border-radius:3px;
    background:var(--navy); opacity:.55; flex-shrink:0;
    transition:opacity .2s ease, background .2s ease;
  }
  .chip:hover{
    transform:translateY(-2px);
    border-color:var(--navy);
    box-shadow:0 6px 16px rgba(27,58,107,.16);
  }
  .chip:hover::before{ opacity:1; }
  .chip-row.gold .chip::before{ background:var(--gold); }
  .chip-row.gold .chip:hover{ border-color:var(--gold); box-shadow:0 6px 16px rgba(140,106,0,.18); }
  .chip-icon{ font-size:14px; line-height:1; }

  /* languages — proficiency index */
  .toolkit-languages{
    padding-top:34px; margin-top:38px; border-top:1px solid var(--rule);
    scroll-margin-top:110px;
  }
  .toolkit-subhead{
    display:flex; align-items:center; gap:16px; margin-bottom:24px;
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; font-weight:400;
    letter-spacing:.08em; text-transform:uppercase; color:var(--navy);
  }
  .toolkit-subhead-rule{
    height:2px; flex:1; border-radius:2px;
    background:linear-gradient(90deg, var(--lang-orange), transparent);
  }
  .lang-block{ margin-top:32px; }
  .lang-block.toolkit-languages{ margin-top:38px; }
  .lang-block .label{
    font-family:'IBM Plex Mono',monospace; font-size:11.5px; text-transform:uppercase;
    letter-spacing:.08em; color:var(--navy); margin-bottom:16px;
  }
  .lang-list-big{ display:flex; flex-direction:column; gap:24px; }
  .lang-item-big{
    opacity:0; transform:translateX(-14px);
    transition:opacity .55s ease, transform .55s cubic-bezier(.22,.61,.36,1);
  }
  .lang-block.in .lang-item-big{ opacity:1; transform:translateX(0); }
  .lang-block.in .lang-item-big:nth-child(1){ transition-delay:.05s; }
  .lang-block.in .lang-item-big:nth-child(2){ transition-delay:.18s; }
  .lang-block.in .lang-item-big:nth-child(3){ transition-delay:.31s; }
  .lang-item-big .lang-top-big{
    display:flex; justify-content:space-between; align-items:baseline;
    margin-bottom:8px; flex-wrap:wrap; gap:6px;
  }
  .lang-item-big:hover .lang-name-big{ transform:translateX(3px); }
  .lang-item-big .lang-name-big{
    font-family:'Fraunces',serif; font-size:26px; font-weight:700; color:var(--ink);
    display:flex; align-items:center; gap:10px;
    transition:transform .25s ease;
  }
  .lang-name-big.native-script{
    position:relative; transform-origin:left center;
  }
  .language-word-stack{
    display:inline-grid; align-items:baseline;
  }
  .language-word-default,
  .language-word-native{
    grid-area:1 / 1; white-space:nowrap;
    transition:opacity .28s ease, transform .35s cubic-bezier(.22,.61,.36,1), filter .28s ease;
  }
  .language-word-native{
    opacity:0; transform:translateY(7px); filter:blur(3px);
  }
  .lang-item-big:hover .language-word-default{
    opacity:0; transform:translateY(-7px); filter:blur(3px);
  }
  .lang-item-big:hover .language-word-native{
    opacity:1; transform:translateY(0); filter:blur(0);
  }
  .lang-name-big.native-script::after{
    content:""; position:absolute; left:34px; right:0; bottom:-3px; height:2px;
    border-radius:2px; background:linear-gradient(90deg, var(--lang-orange), var(--navy));
    transform:scaleX(0); transform-origin:left;
    transition:transform .35s cubic-bezier(.22,.61,.36,1);
  }
  .lang-item-big:hover .lang-name-big.native-script{
    color:var(--navy);
    animation:native-language-hover .7s cubic-bezier(.34,1.56,.64,1) both;
  }
  .lang-item-big:hover .lang-name-big.native-script::after{ transform:scaleX(1); }
  .lang-item-big:hover .lang-name-big.native-script .flag{
    animation:language-flag-wave .65s ease-in-out 2 alternate;
  }
  @keyframes native-language-hover{
    0%{ transform:translateX(0) translateY(0) scale(1); }
    55%{ transform:translateX(8px) translateY(-3px) scale(1.045); }
    100%{ transform:translateX(6px) translateY(-1px) scale(1.025); }
  }
  @keyframes language-flag-wave{
    from{ transform:rotate(-4deg) scale(.96); }
    to{ transform:rotate(5deg) scale(1.08); }
  }
  .flag{ font-size:24px; line-height:1; }
  .lang-item-big .lang-level-big{
    font-family:'IBM Plex Mono',monospace; font-size:13px; font-weight:600; color:var(--navy);
    letter-spacing:.03em;
  }
  .lang-bar-big{
    position:relative; height:10px; border-radius:5px;
    background:var(--paper-dim); border:1px solid var(--rule); overflow:hidden;
  }
  .lang-fill-big{
    position:absolute; top:0; left:0; bottom:0; width:0%;
    border-radius:5px 0 0 5px;
    transition:width 1.1s cubic-bezier(.22,.61,.36,1);
  }
  .lang-fill-big.lang-english{ background:linear-gradient(90deg, var(--li-blue), var(--mail-red)); }
  .lang-fill-big.lang-hindi{ background:linear-gradient(90deg, #FF9933, #138808); }
  .lang-fill-big.lang-spanish{ background:linear-gradient(90deg, #C60B1E, #FFC400); }
  .lang-fun-fact{
    margin:10px 0 0; padding:10px 14px; border-radius:8px;
    background:var(--paper-dim); border:1px dashed var(--rule);
    font-size:13px; color:var(--ink-soft); line-height:1.6;
  }
  .fun-fact-label{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; text-transform:uppercase;
    letter-spacing:.08em; color:#C60B1E; font-weight:700;
  }

  /* ---------- HOBBIES ---------- */
  #hobbies{ overflow:hidden; }
  .f1-zoom-scene{
    position:absolute; inset:58px 0 auto; height:90px; z-index:4;
    overflow:visible; pointer-events:none;
  }
  .f1-race-car{
    position:absolute; top:25px; left:0; width:176px; height:54px;
    opacity:0; transform:translateX(calc(100vw + 220px));
    filter:drop-shadow(0 8px 5px rgba(30,18,12,.24));
  }
  #hobbies.f1-racing .f1-race-car{
    animation:f1-zoom-right-to-left 2.1s cubic-bezier(.16,.78,.25,1) both;
  }
  .f1-car-body{
    position:absolute; left:9px; top:17px; width:142px; height:25px;
    background:linear-gradient(180deg,#ff4a42 0%,#d71320 45%,#940611 100%);
    clip-path:polygon(0 62%,18% 30%,52% 10%,78% 0,100% 25%,96% 76%,38% 83%,8% 100%);
    box-shadow:inset 0 3px rgba(255,255,255,.22);
  }
  .f1-car-body::after{
    content:"16"; position:absolute; left:68px; top:5px; color:#fff;
    font:700 9px/1 'IBM Plex Mono',monospace; text-shadow:0 1px #650008;
  }
  .f1-rear-wing{
    position:absolute; right:8px; top:5px; width:29px; height:29px;
    border-top:6px solid #8d0710; border-right:5px solid #72050b;
    transform:skewY(-8deg);
  }
  .f1-cockpit{
    position:absolute; left:91px; top:8px; width:35px; height:19px;
    border-radius:55% 45% 10% 10%; background:linear-gradient(150deg,#1f2830,#080a0d 68%);
    border:2px solid #e12a31;
  }
  .f1-halo{
    position:absolute; left:94px; top:5px; width:31px; height:18px;
    border:3px solid #aa0a14; border-bottom:0; border-radius:50% 50% 0 0;
  }
  .f1-wheel{
    position:absolute; top:31px; width:24px; height:24px; border-radius:50%;
    background:radial-gradient(circle,#b8b8b8 0 16%,#343434 18% 35%,#090909 38% 72%,#252525 74%);
    box-shadow:inset 0 0 0 2px #050505;
  }
  .f1-wheel-front{ left:25px; }
  .f1-wheel-rear{ right:22px; }
  #hobbies.f1-racing .f1-wheel{ animation:f1-wheel-spin .22s linear 9; }
  .f1-dust{
    position:absolute; right:-12px; top:36px; width:13px; height:9px; border-radius:50%;
    background:rgba(149,136,116,.46); opacity:0; filter:blur(.7px);
  }
  .f1-dust-two{ right:-35px; top:29px; transform:scale(1.35); }
  .f1-dust-three{ right:-58px; top:39px; transform:scale(.75); }
  #hobbies.f1-racing .f1-dust-one{ animation:f1-dust-puff .42s .12s ease-out 3; }
  #hobbies.f1-racing .f1-dust-two{ animation:f1-dust-puff .5s .18s ease-out 3; }
  #hobbies.f1-racing .f1-dust-three{ animation:f1-dust-puff .58s .24s ease-out 2; }
  .f1-neow{
    position:absolute; left:38px; top:-30px; padding:5px 11px 6px;
    background:#fff8c9; border:2px solid #20222a; border-radius:50% 48% 46% 52%;
    color:#d71320; font:700 15px/1 'IBM Plex Mono',monospace;
    letter-spacing:.05em; text-shadow:1px 1px 0 #ffd84d; opacity:0;
    transform:rotate(-8deg) scale(.4);
  }
  .f1-neow::after{
    content:""; position:absolute; right:7px; bottom:-9px; width:12px; height:12px;
    background:#fff8c9; border-right:2px solid #20222a; border-bottom:2px solid #20222a;
    transform:skew(-28deg) rotate(34deg);
  }
  #hobbies.f1-racing .f1-neow{ animation:f1-neow-pop 1.55s .22s ease both; }
  @keyframes f1-zoom-right-to-left{
    0%{ opacity:0; transform:translateX(calc(100vw + 220px)) translateY(2px) rotate(.5deg); }
    7%{ opacity:1; }
    48%{ transform:translateX(43vw) translateY(-1px) rotate(-.4deg); }
    94%{ opacity:1; }
    100%{ opacity:0; transform:translateX(-250px) translateY(1px) rotate(.4deg); }
  }
  @keyframes f1-wheel-spin{ to{ transform:rotate(-360deg); } }
  @keyframes f1-dust-puff{
    0%{ opacity:0; translate:0 0; scale:.5; }
    30%{ opacity:.75; }
    100%{ opacity:0; translate:42px -12px; scale:2.4; }
  }
  @keyframes f1-neow-pop{
    0%, 10%{ opacity:0; transform:rotate(-8deg) scale(.4); }
    22%, 68%{ opacity:1; transform:rotate(-5deg) scale(1); }
    100%{ opacity:0; transform:rotate(4deg) scale(1.25); }
  }
  .hobbies-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
  }
  .hobby-card{
    background:var(--paper-dim); border:1.75px solid var(--rule); border-radius:12px;
    padding:22px 24px;
    opacity:0; transform:translateY(16px) scale(.98);
    transition:border-color .22s ease, box-shadow .3s ease, transform .4s cubic-bezier(.22,.61,.36,1),
               opacity .5s ease;
  }
  .hobbies-grid.in .hobby-card{ opacity:1; transform:translateY(0) scale(1); }
  .hobbies-grid.in .hobby-card:nth-child(1){ transition-delay:.05s; }
  .hobbies-grid.in .hobby-card:nth-child(2){ transition-delay:.13s; }
  .hobbies-grid.in .hobby-card:nth-child(3){ transition-delay:.21s; }
  .hobbies-grid.in .hobby-card:nth-child(4){ transition-delay:.29s; }
  .hobbies-grid.in .hobby-card:nth-child(5){ transition-delay:.37s; }
  .hobbies-grid.in .hobby-card:nth-child(6){ transition-delay:.45s; }
  .hobby-card:hover{ transform:translateY(-3px); }
  .hobby-card-head{
    display:flex; align-items:center; gap:10px; margin-bottom:10px;
  }
  .hobby-card-head h3{
    font-family:'Fraunces',serif; font-size:18px; font-weight:600; color:var(--ink); margin:0;
  }
  .hobby-card p{
    margin:0; font-size:14px; color:var(--ink-soft); line-height:1.65;
  }
  .hobby-icon{
    display:inline-block; font-size:22px; line-height:1;
    transition:transform .3s ease;
  }
  .hobby-card:hover .hobby-icon{
    animation:icon-bounce .6s ease;
  }
  @keyframes icon-bounce{
    0%, 100%{ transform:translateY(0) rotate(0); }
    30%{ transform:translateY(-4px) rotate(-8deg); }
    60%{ transform:translateY(0) rotate(6deg); }
  }

  .hobby-card.golf{
    border-color:rgba(27,138,68,.55);
    box-shadow:0 0 0 1px rgba(27,138,68,.2), 0 0 10px rgba(27,138,68,.25);
  }
  .hobby-card.golf:hover{
    border-color:var(--phone-green);
    box-shadow:0 0 0 1px rgba(27,138,68,.5), 0 0 16px rgba(27,138,68,.4), 0 0 32px rgba(27,138,68,.25);
  }
  .hobby-card.golf h3{ color:var(--phone-green); }
  .hobby-card.f1{
    border-color:rgba(217,48,37,.55);
    box-shadow:0 0 0 1px rgba(217,48,37,.2), 0 0 10px rgba(217,48,37,.25);
  }
  .hobby-card.f1:hover{
    border-color:var(--mail-red);
    box-shadow:0 0 0 1px rgba(217,48,37,.5), 0 0 16px rgba(217,48,37,.4), 0 0 32px rgba(217,48,37,.25);
  }
  .hobby-card.f1 h3{ color:var(--mail-red); }
  .hobby-card.cricket{
    border-color:rgba(10,102,194,.55);
    box-shadow:0 0 0 1px rgba(10,102,194,.2), 0 0 10px rgba(10,102,194,.25);
  }
  .hobby-card.cricket:hover{
    border-color:var(--li-blue);
    box-shadow:0 0 0 1px rgba(10,102,194,.5), 0 0 16px rgba(10,102,194,.4), 0 0 32px rgba(10,102,194,.25);
  }
  .hobby-card.cricket h3{ color:var(--li-blue); }
  .hobby-card.cubing{
    border-color:rgba(140,106,0,.55);
    box-shadow:0 0 0 1px rgba(140,106,0,.2), 0 0 10px rgba(140,106,0,.25);
  }
  .hobby-card.cubing:hover{
    border-color:var(--gold);
    box-shadow:0 0 0 1px rgba(140,106,0,.5), 0 0 16px rgba(140,106,0,.4), 0 0 32px rgba(140,106,0,.25);
  }
  .hobby-card.cubing h3{ color:var(--gold); }
  .hobby-card.lang{
    border-color:rgba(232,135,30,.55);
    box-shadow:0 0 0 1px rgba(232,135,30,.2), 0 0 10px rgba(232,135,30,.25);
  }
  .hobby-card.lang:hover{
    border-color:var(--lang-orange);
    box-shadow:0 0 0 1px rgba(232,135,30,.5), 0 0 16px rgba(232,135,30,.4), 0 0 32px rgba(232,135,30,.25);
  }
  .hobby-card.lang h3{ color:var(--lang-orange); }
  .hobby-card.lego{
    border-color:rgba(27,58,107,.55);
    box-shadow:0 0 0 1px rgba(27,58,107,.2), 0 0 10px rgba(27,58,107,.25);
  }
  .hobby-card.lego:hover{
    border-color:var(--navy);
    box-shadow:0 0 0 1px rgba(27,58,107,.5), 0 0 16px rgba(27,58,107,.4), 0 0 32px rgba(27,58,107,.25);
  }
  .hobby-card.lego h3{ color:var(--navy); }

  /* ---------- CONTACT PAGE ---------- */
  section#contact-page{ padding-bottom:64px; }
  .contact-lead{ width:100%; max-width:none; color:var(--ink-soft); margin-bottom:34px; font-size:15.5px; }
  .contact-lead strong{ color:var(--ink); font-weight:700; }
  #contact-page .hbtn{
    padding:21px 42px; min-height:66px; font-size:18px; border-radius:999px;
  }
  #contact-page .hbtn svg{ width:26px; height:26px; }
  .hbtn.icon-only{
    padding:14px; border-radius:50%;
    width:48px; height:48px; justify-content:center;
  }
  .hbtn.icon-only svg{ width:19px; height:19px; }

  /* footer */
  footer{ padding:40px 0 60px; text-align:center; }
  footer .fline{
    font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--ink-soft);
  }
  footer a{ color:var(--navy); text-decoration:none; }

  @media (max-width:760px){
    .golf-title-stage{ min-height:108px; }
    .golf-club{ transform:scale(.82); transform-origin:18px 9px; }
    .golf-finish{ transform:scale(.82); transform-origin:right bottom; }
    .golf-title-stage.golf-play .golf-club{ animation-name:golf-club-swing; }
    .entry{ grid-template-columns:1fr; gap:6px; }
    .section-head-with-action{ flex-wrap:wrap; }
    .section-head-with-action .know-more{
      margin-top:10px; padding:10px 15px; font-size:11px;
    }
    .skills-grid{ grid-template-columns:1fr; }
    .hobbies-grid{ grid-template-columns:1fr; }
    .hero .summary{ max-width:100%; }
    nav ul{ display:none; }
  }

  @media (max-width:520px){
    .theme-switch-dock{ right:8px; gap:6px; padding:4px 5px 4px 8px; }
    .theme-switch-name{ font-size:9px; }
    .theme-switch{ width:200px; }
    .theme-option{ gap:4px; font-size:8.5px; }
    html[data-theme="dark"] .theme-switch-thumb{ transform:translateX(97px); }
  }

  /* ---------- SCROLL PROGRESS ---------- */
  .progress{
    position:fixed; top:0; left:0; height:2px; width:0%;
    background:var(--navy); z-index:100;
    transition:width .08s linear;
  }

  /* ---------- ACTIVE NAV LINK ---------- */
  nav ul a.active{ color:var(--navy); }

  /* ---------- SCROLL REVEAL ---------- */
  .reveal{
    opacity:0; transform:translateY(22px);
    transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);
  }
  .reveal.in{ opacity:1; transform:translateY(0); }
  .reveal-stagger.in .r-child{ opacity:1; transform:translateY(0); }
  .r-child{
    opacity:0; transform:translateY(16px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .r-child:nth-child(1){ transition-delay:.02s; }
  .r-child:nth-child(2){ transition-delay:.1s; }
  .r-child:nth-child(3){ transition-delay:.18s; }
  .r-child:nth-child(4){ transition-delay:.26s; }

  @media (prefers-reduced-motion: reduce){
    .reveal, .r-child{ opacity:1 !important; transform:none !important; transition:none !important; }
    .section-head-rule{ animation:none; }
    .lang-item-big:hover .lang-name-big.native-script,
    .lang-item-big:hover .lang-name-big.native-script .flag{ animation:none; }
    .language-word-default, .language-word-native{ transition:none; }
    .when-current::before{ animation:none; }
    .hbtn::after{ display:none; }
    .hobby-card:hover .hobby-icon{ animation:none; }
    .eval-stat .num{ opacity:1 !important; transform:none !important; }
    .hero-photo:hover img{ transform:none; }
    .chip, .hobby-card, .lang-item-big{ opacity:1 !important; transform:none !important; }
    .hero h1 em{ animation:none; background-position:0% 50%; }
    .warp-text{ filter:none; transform:none !important; transition:none; }
    .soft-aurora{ opacity:.34; }
    .golf-club, .golf-ball, .golf-finish, .bounce-effect{ display:none; }
    .f1-zoom-scene{ display:none; }
    .golf-title-stage.golf-play .warp-text{ animation:none; clip-path:none; opacity:1; }
    .entry:hover{ padding-left:0; }
    nav{ animation:none; }
    nav ul a, nav ul a::after, nav .brand{ transition:none !important; }
  }
