/* 07129 — Apple-style minimal design */
:root{
  --bg:#0b0b0c;
  --panel:#111216;
  --card:#121317;
  --text:#eef0f3;
  --muted:#9aa3ad;
  --accent:#2aa3ff;
  --accent-2:#7a5cff;
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html,body{height:100%}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.6 "Inter",system-ui,Segoe UI,Roboto,Helvetica,Arial}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:linear-gradient(180deg,rgba(11,11,12,.9),rgba(11,11,12,0));backdrop-filter:saturate(180%) blur(12px);z-index:50}
.brand{font-weight:800;letter-spacing:.08em}
.brand{display:flex;align-items:center;gap:10px}
.dice3d{width:36px;height:36px;position:relative;transform-style:preserve-3d;cursor:pointer}
.dice3d .face{position:absolute;inset:0;display:grid;place-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:8px;backdrop-filter:blur(2px)}
.dice3d .pip{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.5);position:absolute}

/* pip layouts per face */
.face-1 .pip{top:50%;left:50%;transform:translate(-50%,-50%)}
.face-2 .pip{box-shadow:-10px -10px 0 0 #fff, 10px 10px 0 0 #fff}
.face-3 .pip{box-shadow:-10px -10px 0 0 #fff, 0 0 0 0 #fff, 10px 10px 0 0 #fff}
.face-4 .pip{box-shadow:-10px -10px 0 0 #fff, 10px -10px 0 0 #fff, -10px 10px 0 0 #fff, 10px 10px 0 0 #fff}
.face-5 .pip{box-shadow:-10px -10px 0 0 #fff, 10px -10px 0 0 #fff, 0 0 0 0 #fff, -10px 10px 0 0 #fff, 10px 10px 0 0 #fff}
.face-6 .pip{box-shadow:-10px -12px 0 0 #fff, 10px -12px 0 0 #fff, -10px 0 0 0 #fff, 10px 0 0 0 #fff, -10px 12px 0 0 #fff, 10px 12px 0 0 #fff}
.top-nav a{opacity:.8;margin-left:16px;transition:opacity .2s}
.top-nav a:hover{opacity:1}

/* Sections */
.section{position:relative;padding:120px 0}
.container{width:min(1120px,90%);margin:0 auto}
.section-title{font-size:40px;line-height:1.1;margin:0 0 12px}
.section-lead{color:var(--muted);margin:0 0 28px}

/* Hero */
.hero{min-height:100vh;display:grid;place-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:-10%;background:radial-gradient(1200px 600px at 70% 20%,rgba(42,163,255,.25),transparent 60%),radial-gradient(900px 500px at 20% 80%,rgba(122,92,255,.22),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.0));transform:translateZ(0)}
.hero-grid{position:relative;text-align:center;padding-top:64px}
.hero-title{font-size:clamp(48px,10vw,128px);line-height:0.95;margin:0;background:linear-gradient(180deg,#fff, #9fb3c7);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:-.01em;background-size:200% 200%;animation:gradientShift 8s ease-in-out infinite}
.hero-title{position:relative;display:inline-block}
.hero-title .char{background:inherit;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero-title .name-sweep{position:absolute;top:0;bottom:0;width:22%;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.35),rgba(255,255,255,0));mix-blend-mode:overlay;pointer-events:none}
.hero-subtitle{color:var(--muted);margin:12px 0 24px}
.button{display:inline-block;padding:12px 18px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);box-shadow:var(--shadow);transition:transform .2s,background .2s}
.button:hover{transform:translateY(-2px)}
.button.primary{background:linear-gradient(180deg,#1b7bd6,#165ca0)}
.button.ghost{background:transparent}
.scroll-indicator{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);opacity:.7}
.scroll-indicator span{display:block;width:2px;height:48px;background:linear-gradient(180deg,rgba(255,255,255,.0),rgba(255,255,255,.8),rgba(255,255,255,.0));animation:scrollPulse 2s ease-in-out infinite}
@keyframes scrollPulse{0%,100%{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(8px)}}
@keyframes gradientShift{0%{background-position:50% 0}50%{background-position:50% 100%}100%{background-position:50% 0}}

/* Portfolio */
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.card{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:16px;box-shadow:var(--shadow);transform-style:preserve-3d;perspective:800px;will-change:transform,opacity}
.card:hover{box-shadow:0 20px 60px rgba(0,0,0,.45)}
.card-body{padding:28px}
.card-icon{height:42px;width:auto;margin:8px 0 12px;filter:grayscale(20%)}
.resume-clip{width:52px;height:52px;margin:4px 0 12px}
.resume-clip svg{width:100%;height:100%;filter:drop-shadow(0 6px 16px rgba(122,92,255,.25))}
.schedule-clip{width:52px;height:52px;margin:4px 0 12px}
.schedule-clip svg{width:100%;height:100%;filter:drop-shadow(0 6px 16px rgba(255,107,107,.25))}
.card h3{margin:6px 0 6px;font-size:20px}
.card p{margin:0;color:var(--muted)}

/* Research long-form */
.research{background:linear-gradient(180deg,#0a0f14,#0b1118 35%,#0a0f1a 70%,#091018);position:relative}
.research::before,.research::after{content:"";position:absolute;left:0;right:0;height:90px;pointer-events:none;z-index:0}
.research::before{top:-90px;background:linear-gradient(180deg,var(--bg) 0%, rgba(11,11,12,0.85) 40%, rgba(11,11,12,0) 100%)}
.research::after{bottom:-90px;background:linear-gradient(0deg,var(--bg) 0%, rgba(11,11,12,0.85) 40%, rgba(11,11,12,0) 100%)}
.story{position:relative}
.story-panel{position:relative;min-height:80vh;display:grid;place-items:center;padding:48px 0}
.story-panel.highlight{background:radial-gradient(600px 300px at 50% 30%,rgba(122,92,255,.12),transparent 60%)}
.story-copy{max-width:760px;padding:0 24px;text-align:center}
.story-copy h3{font-size:40px;margin:0 0 8px}
.story-copy p{color:var(--muted);margin:0}

/* Theory (card grid variant) */
.research .card-grid{margin-top:16px}
.research .card h3{font-size:22px}

/* Footer */
.site-footer{padding:64px 0;border-top:1px solid rgba(255,255,255,.06);background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(255,255,255,.0))}
.site-footer p{margin:0;color:#cbd2d9}

/* Responsive */
@media (max-width: 1024px){
  .card-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 640px){
  .section{padding:90px 0}
  .card-grid{grid-template-columns:1fr}
  .top-nav{display:none}
}

/* Reveal utility (for noscript fallback + CSS driven initial state) */
[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease}
[data-reveal].is-visible{opacity:1;transform:none}

/* Modal */
/* removed calendar styles */


