/* The hive: shared geometry, warm paper, and deliberate places to land. */
:root { --hex: polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%); --text-muted:#bcb09c; }
.hive-eyebrow { color:var(--accent); font:500 10px/1.6 'Space Grotesk',sans-serif; letter-spacing:.22em; }
.site-header { background:linear-gradient(#141310f5,#14131000); padding-bottom:1.5rem; }
#hero { min-height:100svh; height:100%; overflow-y:auto; display:flex; flex-direction:column; justify-content:center; gap:24px; padding:100px 24px 36px; }
.hero-wordmark-wrap { position:relative; inset:auto; transform:none; }
.hero-wordmark { font-size:clamp(2.7rem,10.5vw,9.5rem); }
#start-btn { position:relative; inset:auto; transform:none; flex-shrink:0; padding:17px 28px; background:var(--accent); }
#start-btn .start-btn-text { color:#141310; letter-spacing:.18em; }
#start-btn:hover { transform:translateY(-3px); }
#hex-menu { background:radial-gradient(ellipse at center,#14131075,#141310f2); }
.menu-heading { position:absolute; top:max(95px,12vh); text-align:center; padding:0 20px; }
.menu-heading h2 { font-size:clamp(30px,4vw,48px); margin:10px 0; letter-spacing:-.04em; }
.menu-heading p { color:var(--text-muted); font-size:13px; }
.menu-footnote { position:absolute; bottom:5vh; font-size:9px; letter-spacing:.2em; color:var(--text-muted); }
.hex-node { width:148px; height:170px; animation:none !important; background:#b88736; }
.hex-node::after { transform:scale(.978); background:linear-gradient(145deg,#30291a,#171612); }
.hex-centre { width:148px; height:170px; background:var(--accent); }
.hex-centre::after { background:#f0b84c; }
.hex-bee-icon { position:relative; z-index:1; width:70px; height:70px; }
#hex-about { transform:translate(-154px,35px); }
#hex-skills { transform:translate(-77px,-98px); }
#hex-experience { transform:translate(77px,-98px); }
#hex-projects { transform:translate(154px,35px); }
#hex-publications { transform:translate(77px,168px); }
#hex-contact { transform:translate(-77px,168px); }
.hex-centre { translate:0 35px; }
.hex-label { font-size:11px; color:#f5e8ce; letter-spacing:.04em; }
.hex-number { z-index:1; font-size:8px; letter-spacing:.15em; color:#c8a96f; }
.hex-icon { font-size:25px; }
.hex-ring:hover .hex-number { color:#302619; }
.hex-ring:focus-visible { background:#fff2cf; }
.hex-ring:focus-visible::after { background:#6a4a15; }
button:focus-visible,a:focus-visible { outline:2px solid #ffe2a0; outline-offset:5px; }
#section-panel { background-color:#141310; background-image:radial-gradient(ellipse at 100% 0,#49351765,transparent 65%),var(--honeycomb-pattern); }
#panel-content { max-width:1100px; padding:115px 56px 65px; }
#panel-back-btn { top:70px; left:24px; color:#f0d49b; }
.panel-title { color:#f7ebd2; font-size:clamp(40px,6vw,72px); letter-spacing:-.055em; margin-top:12px; }
.panel-title::after { display:none; }
.section-deck { color:var(--text-muted); margin:16px 0 40px; font-size:16px; }
.panel-sub { color:#e9c581; }
.panel-skills-grid { grid-template-columns:1fr 1fr; gap:40px 32px; }
.skill-category { padding:0; border:0; background:none; }
.skill-category .panel-sub { border-left:2px solid var(--accent); padding-left:12px; }
.skill-badges-panel { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:5px; padding-bottom:20px; }
.skill-badges-panel .badge { clip-path:var(--hex); min-width:0; width:100%; aspect-ratio:.866; padding:16px 9px; display:flex; align-items:center; justify-content:center; text-align:center; background:linear-gradient(145deg,#f8d589,#dca43c); color:#241c10; font-size:12px; font-weight:600; line-height:1.4; border:0; transition:filter .2s,translate .2s; }
.skill-badges-panel .badge:nth-child(3n+2) { translate:0 24%; }
.skill-badges-panel .badge:hover { filter:brightness(1.15); }
.panel-about-text { display:grid; grid-template-columns:1fr 250px; gap:30px; align-items:center; }
.panel-about-text .panel-divider { display:none; }
.panel-photo-wrap { grid-column:2; grid-row:1; background:linear-gradient(150deg,#f1c66d,#79521a); clip-path:var(--hex); width:240px; height:277px; align-items:flex-end; justify-content:center; }
.panel-portrait { width:225px; opacity:1; }
.panel-certs { grid-column:1/-1; padding-top:25px; border-top:1px solid #f0b84c35; }
.panel-cert-btn { width:190px; height:130px; border-radius:0; padding:8px; background:#2a2418; }
.panel-exp-group { border-left:1px dashed #f0b84c66; padding-left:30px; position:relative; }
.panel-exp-group::before { content:''; position:absolute; left:-8px; top:0; width:15px; height:18px; background:var(--accent); clip-path:var(--hex); }
.panel-exp-card { background:#211e17; border-radius:0 24px 0 24px; }
.panel-internship-grid { grid-template-columns:1fr; }
.panel-projects-grid { }
/* .panel-project-card styles moved to panels-glass.css */
.panel-pub-card { max-width:750px; padding:40px; border:1px solid #b9924e; background:linear-gradient(120deg,#332919,#1c1912); box-shadow:8px 8px 0 #f0b84c12; }
.panel-pub-badge { clip-path:var(--hex); width:88px; height:100px; display:grid; place-items:center; padding:0; }
.panel-pub-title { font-size:30px; }
.panel-contact-links { max-width:720px; }
.panel-contact-item { max-width:none; padding:20px; background:#241f16; border-radius:0; overflow-wrap:anywhere; }
.panel-contact-item::after { content:'↗'; margin-left:auto; color:var(--accent); }
.panel-contact-icon { width:48px; height:55px; background:#f0b84c1a; clip-path:var(--hex); align-items:center; justify-content:center; }
@media(max-width:900px) { .header-left { display:none; } .header-center { position:static; transform:none; } .site-header { gap:12px; } #panel-content { padding-left:30px; padding-right:30px; } }
@media(max-width:600px) {
 .site-header { padding:14px 16px; } .header-name { font-size:12px; } .social-links { gap:12px; } .social-links svg { width:16px; } .header-right { gap:10px; } #home-btn { padding:6px; } #home-btn span { display:none; }
 #hero { padding:85px 18px 28px; gap:20px; } #why-intro { padding:20px; } .why-intro-text { font-size:14px; } #why-intro-story { font-size:12px; }
 .menu-heading { top:100px; } .menu-heading p { font-size:12px; }
 .hex-node { width:100px; height:115px; } .hex-label { font-size:9px; } .hex-number { font-size:7px; } .hex-icon { font-size:21px; }
 #hex-about { transform:translate(-104px,35px); } #hex-skills { transform:translate(-52px,-55px); } #hex-experience { transform:translate(52px,-55px); } #hex-projects { transform:translate(104px,35px); } #hex-publications { transform:translate(52px,125px); } #hex-contact { transform:translate(-52px,125px); }
 #panel-content { padding:115px 20px 40px; } #panel-back-btn { left:20px; } .section-deck { font-size:14px; margin-bottom:30px; }
 .panel-skills-grid { grid-template-columns:1fr; gap:30px; } .skill-badges-panel { max-width:380px; } .skill-badges-panel .badge { font-size:12px; }
 .panel-about-text { display:flex; flex-direction:column; align-items:flex-start; } .panel-photo-wrap { align-self:center; } .panel-cert-btn { width:140px; height:100px; } .panel-exp-group { padding-left:18px; } .panel-pub-card { padding:25px; }
 .panel-contact-item { font-size:12px; gap:12px; } .panel-contact-icon { flex-shrink:0; }
}
@media(max-height:700px) { .menu-heading { top:80px; } .menu-heading h2 { font-size:28px; } .menu-heading p { display:none; } .menu-footnote { bottom:15px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; } }
.hex-centre { translate:none; margin-top:70px; }
#section-panel { background-image:linear-gradient(#141310ba,#141310ba),radial-gradient(ellipse at 100% 0,#49351765,transparent 65%),var(--honeycomb-pattern); }
@media(min-width:601px) and (max-height:760px) { .menu-heading { top:75px; } .menu-heading p { display:none; } .hex-node { zoom:.8; } }
@media(max-height:540px) { #hex-menu { overflow-y:auto; display:block; } .menu-heading { top:75px; width:100%; } .hex-node { left:calc(50% - 50px); top:240px; } .hex-centre { margin-top:35px; } .menu-footnote { top:490px; bottom:auto; width:100%; text-align:center; padding-bottom:25px; } }
/* Minimal hero: the wordmark stays at the exact viewport center. */
#hero { padding:0; gap:0; overflow:hidden; height:100svh; min-height:0; }
.hero-wordmark-wrap { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:100%; }
#start-btn { position:absolute; top:auto; bottom:12%; left:50%; transform:translateX(-50%); background:transparent; padding:12px 22px; border-color:#f0b84c66; }
#start-btn .start-btn-text { color:var(--accent); font-size:10px; }
#start-btn:hover { transform:translateX(-50%) translateY(-3px); background:var(--accent); }
#start-btn:hover .start-btn-text { color:var(--bg); }
/* A quiet closing note, outside the centered wordmark and entry button. */
.hero-corner-quote {
  position:absolute;
  left:clamp(20px,3vw,48px);
  bottom:clamp(20px,4vh,40px);
  width:min(270px,calc(100% - 40px));
  margin:0;
  padding-left:13px;
  border-left:1px solid #f0b84c80;
  color:#d8cbb3;
  font-size:12px;
  line-height:1.65;
  text-shadow:0 2px 8px #000;
  z-index:4;
}
.hero-corner-quote cite {
  display:block;
  margin-top:6px;
  color:var(--accent);
  font:normal 10px/1.5 'Space Grotesk',sans-serif;
  letter-spacing:.04em;
}
@media(max-width:600px), (max-height:600px) {
  #start-btn { bottom:145px; }
  .hero-corner-quote { bottom:22px; font-size:11px; width:240px; }
}
/* Section rhythm and motion. */
.panel-section { animation:none; }
.panel-section > .hive-eyebrow { display:flex; align-items:center; gap:12px; }
.panel-section > .hive-eyebrow::before { content:''; width:13px; height:15px; clip-path:var(--hex); background:var(--accent); }
.section-deck { max-width:520px; line-height:1.7; }
.panel-bio { font-size:clamp(18px,2vw,24px); font-weight:400; line-height:1.7; }
.panel-photo-wrap { position:relative; box-shadow:inset 0 0 55px #fff2; }
.panel-portrait { transition:filter .5s,scale .6s; transform-origin:bottom; }
.panel-photo-wrap:hover .panel-portrait { scale:1.035; filter:grayscale(0); }
.panel-certs .panel-sub::after { content:' / SELECT TO VIEW'; font-size:9px; color:var(--text-muted); letter-spacing:.1em; }
.panel-cert-grid { gap:16px; }
.panel-cert-btn { width:calc((100% - 32px)/3); height:auto; aspect-ratio:1.45; background:#272116; transition:transform .3s,border-color .3s,box-shadow .3s; }
.panel-cert-btn img { object-fit:contain; }
.panel-cert-btn:hover { transform:translateY(-5px); box-shadow:0 12px 30px #0005; }
.skill-category { padding:24px 20px 35px; border:1px solid #f0b84c22; background:linear-gradient(145deg,#2b2518aa,#171610aa); border-radius:4px 28px 4px 4px; }
.skill-badges-panel { margin-top:24px; }
.skill-badges-panel .badge { position:relative; background:linear-gradient(135deg,#f5d693,#d7a13d); }
.skill-badges-panel .badge::after { content:''; position:absolute; inset:0; background:linear-gradient(115deg,transparent 25%,#fff6 50%,transparent 75%); transform:translateX(-150%); transition:transform .6s; pointer-events:none; }
.skill-badges-panel .badge:hover::after { transform:translateX(150%); }
.panel-exp-card { padding:28px; border-color:#f0b84c30; transition:background .3s,border-color .3s,box-shadow .3s; }
.panel-exp-card:hover { background:#302719; border-color:#f0b84c80; box-shadow:0 12px 30px #0003; }
.panel-exp-role { font-size:19px; line-height:1.4; }
.panel-exp-period { background:#f0b84c16; color:#e5c281; padding:6px 10px; border:1px solid #f0b84c30; }
.panel-exp-header { gap:12px; }
.panel-exp-bullets { gap:10px; }
.panel-exp-bullets li { font-size:14px; line-height:1.8; }
.panel-exp-featured { background:linear-gradient(110deg,#3a2d18,#201c14); }
/* Obsolete .panel-project-card rules neutralized — now managed in panels-glass.css */
.panel-pub-card { max-width:850px; padding:48px; position:relative; overflow:hidden; }
.panel-pub-card::after { content:'RESEARCH / 01'; position:absolute; right:28px; top:32px; writing-mode:vertical-rl; letter-spacing:.25em; font-size:10px; color:#d1ad6d; }
.panel-pub-badge { margin-bottom:28px; background:linear-gradient(135deg,#ffe5a6,#c49031); }
.panel-pub-title { font-size:clamp(28px,4vw,44px); margin-bottom:14px; }
.panel-pub-journal { max-width:450px; line-height:1.7; }
.panel-pub-desc { max-width:530px; }
.panel-contact-intro { font-size:clamp(24px,4vw,38px); color:#f0e3c9; max-width:530px; line-height:1.3; }
.panel-contact-item { border-width:0 0 1px; background:linear-gradient(90deg,#32281770,transparent); padding:24px 20px; transition:background .3s,color .3s,padding .3s; }
.panel-contact-item:hover { padding-left:28px; }
.panel-contact-item::after { font-size:24px; transition:transform .3s; }
.panel-contact-item:hover::after { transform:translate(3px,-3px); }
.section-next { width:100%; display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:64px; padding:24px 0; border:0; border-top:1px solid #f0b84c40; background:none; color:#ead8b5; text-align:left; cursor:pointer; font:500 25px/1.5 'Space Grotesk',sans-serif; }
.section-next small { display:block; font-size:9px; letter-spacing:.2em; color:var(--accent); margin-bottom:8px; }
.section-next > span:last-child { display:grid; place-items:center; width:52px; height:60px; clip-path:var(--hex); background:#f0b84c20; transition:background .3s,color .3s; }
.section-next:hover > span:last-child { background:var(--accent); color:var(--bg); }
.reveal-ready { opacity:0; transform:translateY(22px); }
.reveal-ready.revealed { opacity:1; transform:translateY(0); transition:opacity .65s var(--reveal-delay,0ms),transform .65s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.skill-category.revealed .badge { animation:cell-arrive .6s both; animation-delay:calc(var(--reveal-delay,0ms) + var(--cell-delay,0ms)); }
@keyframes cell-arrive { from { opacity:0; scale:.8; } to { opacity:1; scale:1; } }
@media(max-width:600px) { .skill-category { padding:20px 14px 35px; } .panel-exp-card { padding:22px; } .panel-pub-card { padding:28px; } .panel-cert-btn { width:calc((100% - 16px)/2); } .section-next { margin-top:40px; } }
@media(prefers-reduced-motion:reduce) { .reveal-ready { opacity:1; transform:none; } .skill-category.revealed .badge { animation:none; } }
/* Precision linework for the hive navigation. */
#hex-menu .hex-ring { background:linear-gradient(145deg,#d4a956,#715424 65%,#c29442); gap:8px; }
#hex-menu .hex-ring::after { background:linear-gradient(145deg,#302a1d,#181712 75%); transition:background .3s; }
#hex-menu .hex-icon { display:grid; place-items:center; width:36px; height:36px; color:#edc87e; transition:transform .3s,color .3s; }
#hex-menu .hex-icon svg { display:block; width:32px; height:32px; }
#hex-menu .hex-label { font-weight:500; letter-spacing:.035em; }
#hex-menu .hex-number { font-size:7px; letter-spacing:.18em; color:#b19a71; }
#hex-menu .hex-ring:hover::after, #hex-menu .hex-ring:focus-visible::after { background:#edc16b; }
#hex-menu .hex-ring:hover .hex-icon, #hex-menu .hex-ring:focus-visible .hex-icon { color:#251e12; filter:none; transform:translateY(-3px); }
#hex-menu .hex-ring:hover .hex-label, #hex-menu .hex-ring:focus-visible .hex-label { color:#251e12; }
#hex-menu .hex-ring:hover .hex-number, #hex-menu .hex-ring:focus-visible .hex-number { color:#594323; }
#hex-menu .hex-centre { background:#ffe4a3; gap:4px; }
#hex-menu .hex-centre::after { background:linear-gradient(145deg,#ffdfa0,#d8a445); }
#hex-menu .hex-bee-icon { width:56px; height:56px; color:#302310; }
.hex-centre-label { position:relative; z-index:1; font:600 8px/1.5 'Space Grotesk',sans-serif; letter-spacing:.2em; color:#473217; }
@media(max-width:600px) {
 #hex-menu .hex-ring { gap:5px; }
 #hex-menu .hex-icon { width:27px; height:27px; }
 #hex-menu .hex-icon svg { width:25px; height:25px; }
 #hex-menu .hex-number { font-size:6px; letter-spacing:.1em; }
 #hex-menu .hex-bee-icon { width:40px; height:40px; }
 .hex-centre-label { font-size:6px; }
}
