/* Quiet, tactile depth for the introduction and contact panels. */
.hero-grid,.contact-inner{
  position:relative;isolation:isolate;
  border:1px solid color-mix(in srgb,var(--color-primary) 17%,var(--color-surface));
  border-radius:28px;
  background:radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--color-primary) 9%,transparent),transparent 58%),linear-gradient(145deg,var(--color-surface-2),var(--color-surface));
  box-shadow:inset 0 1px 0 color-mix(in srgb,white 65%,transparent),0 5px 0 color-mix(in srgb,var(--color-primary) 15%,var(--color-surface)),0 7px 0 color-mix(in srgb,var(--color-primary) 23%,var(--color-surface)),0 22px 42px -22px rgba(20,57,53,.34);
  transform:perspective(1400px) rotateX(var(--depth-x,0deg)) rotateY(var(--depth-y,0deg));
  transition:transform .35s ease,box-shadow .35s ease;
}
.hero-grid{padding:clamp(24px,4vw,52px);gap:clamp(24px,4vw,48px)}
.hero-text{min-width:0}
.hero-bio{font-size:clamp(17px,1.5vw,21px);color:var(--color-text);line-height:1.85;max-width:36em;text-wrap:pretty}
.hero-avatar{width:190px;height:220px;padding:8px;background:var(--color-surface-2);transform:rotate(3deg);box-shadow:0 3px 0 color-mix(in srgb,var(--color-primary) 25%,var(--color-surface)),0 18px 28px -12px rgba(20,57,53,.45)}
.hero-avatar img{border-radius:12px}
.hero-tags .tag{border:1px solid color-mix(in srgb,var(--color-primary) 12%,transparent);box-shadow:inset 0 1px 0 #ffffff50,0 2px 0 color-mix(in srgb,var(--color-primary) 13%,transparent)}
.hero-contact .btn-primary{box-shadow:inset 0 1px 0 #ffffff30,0 4px 0 color-mix(in srgb,var(--color-primary) 75%,black),0 10px 18px -10px var(--color-primary)}
.contact-section{padding:32px 24px 48px;background:transparent;border-top:0}
.contact-inner{padding:clamp(32px,5vw,64px) clamp(20px,4vw,48px)}
.contact-inner::before{content:"";display:block;width:44px;height:4px;border-radius:4px;background:var(--color-primary);box-shadow:0 2px 0 color-mix(in srgb,var(--color-primary) 25%,transparent);margin:0 auto 24px}
.contact-desc{max-width:40em;line-height:1.8}
.contact-link{min-width:0;max-width:100%;overflow-wrap:anywhere;background:var(--color-surface-2);box-shadow:inset 0 1px 0 #ffffff30,0 3px 0 color-mix(in srgb,var(--color-primary) 12%,var(--color-surface)),0 9px 16px -12px rgba(20,57,53,.4)}
.contact-link:not(.contact-static):hover,.hero-contact .btn-primary:hover{transform:translateY(-3px)}
.contact-link:focus-visible,.hero-contact a:focus-visible{outline:2px solid var(--color-primary);outline-offset:5px}
@media(max-width:760px){
  .hero-grid{padding:28px 22px;border-radius:22px}
  .hero-avatar{width:156px;height:180px}
  .hero-bio{text-align:left}
  .contact-section{padding:24px 16px 40px}
  .contact-links{gap:14px}
  .contact-link{font-size:14px}
}
/* Raised console and instrument tiles share the surrounding ivory/teal palette. */
.workstation-panel{position:relative;gap:24px;padding:8px 0 18px;perspective:1400px}
.workstation-panel .terminal-card,.workstation-panel .signal-grid{min-width:0;transform:perspective(1400px) rotateX(var(--depth-x,0deg)) rotateY(var(--depth-y,0deg));transition:transform .35s ease}
.workstation-panel .terminal-card{position:relative;border-radius:22px;border:1px solid #648982;background:radial-gradient(ellipse at 0 0,#234a46,transparent 70%),linear-gradient(145deg,#163330,#102523);box-shadow:inset 0 1px 0 #ffffff30,0 5px 0 #304c47,0 7px 0 #75928a,0 24px 35px -18px #102e3866}
.workstation-panel .terminal-card::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:repeating-linear-gradient(0deg,transparent 0 4px,#a2dfce04 4px 5px)}
.workstation-panel .terminal-bar{padding:16px 20px;background:#ffffff08;border-bottom:1px solid #b5ddd226;box-shadow:0 1px 0 #00000024}
.workstation-panel .terminal-bar strong{color:#bdd3cd;font-weight:500}
.workstation-panel .terminal-bar span{box-shadow:0 0 9px currentColor;color:#b25c37}
.workstation-panel .terminal-bar span:nth-child(2){color:#d8a331}
.workstation-panel .terminal-bar span:nth-child(3){background:#79c7b8;color:#79c7b8;animation:workstation-status 3s ease-in-out infinite}
.workstation-panel .terminal-lines{padding:26px 22px;color:#e6f1ed;overflow-wrap:anywhere;line-height:1.85}
.workstation-panel .terminal-prompt{color:#91dfce;text-shadow:0 0 18px #91dfce24}
.workstation-panel .terminal-output{color:#c0d1cc}
.workstation-panel .terminal-cursor{background:#91dfce;box-shadow:0 0 10px #91dfce66}
.workstation-panel .signal-grid{gap:20px}
.workstation-panel .signal-card{border-radius:20px;border:1px solid color-mix(in srgb,var(--color-primary) 19%,var(--color-surface));background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--color-primary) 9%,transparent),transparent 65%),var(--color-surface);box-shadow:inset 0 1px 0 #ffffff65,0 4px 0 color-mix(in srgb,var(--color-primary) 18%,var(--color-surface)),0 6px 0 color-mix(in srgb,var(--color-primary) 26%,var(--color-surface)),0 16px 24px -17px #102e3866;transition:transform .3s ease,box-shadow .3s ease;padding:24px 20px}
.workstation-panel .signal-card::before{bottom:14px;height:3px;border-radius:3px;opacity:.65}
.workstation-panel .signal-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 85% 0%,color-mix(in srgb,var(--color-primary) 8%,transparent),transparent 60%);opacity:.65;transition:opacity .4s ease}
.workstation-panel .signal-card:hover::after{opacity:1}
.signal-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.workstation-panel .signal-grid{position:relative}
.workstation-panel .signal-card::before{background:linear-gradient(90deg,var(--color-primary),#7bb7a8,var(--color-accent),var(--color-primary));background-size:250% 100%;animation:signal-flow 9s ease-in-out infinite}
.workstation-panel .signal-card:nth-child(2)::before{animation-delay:-2s}
.workstation-panel .signal-card:nth-child(3)::before{animation-delay:-4s}
.workstation-panel .signal-card:nth-child(4)::before{animation-delay:-6s}
@keyframes signal-flow{50%{background-position:100% 0;opacity:.9}}
@media(prefers-reduced-motion:reduce){.signal-particles{display:none}.workstation-panel .signal-card::before{animation:none}}
.workstation-panel .signal-value{position:relative;z-index:1;line-height:1.18;text-shadow:0 2px 0 color-mix(in srgb,var(--color-primary) 12%,transparent);overflow-wrap:anywhere}
.workstation-panel .signal-desc{line-height:1.75;margin-bottom:16px}
@media(hover:hover) and (pointer:fine){.workstation-panel .signal-card:hover{transform:translateY(-5px);box-shadow:inset 0 1px 0 #ffffff65,0 5px 0 color-mix(in srgb,var(--color-primary) 20%,var(--color-surface)),0 22px 28px -15px #102e3855}}
@keyframes workstation-status{50%{box-shadow:0 0 3px #79c7b8;opacity:.65}}
@media(max-width:760px){.workstation-panel{gap:24px}.workstation-panel .signal-grid{gap:16px}.workstation-panel .signal-card{padding:22px 16px}.workstation-panel .terminal-lines{padding:24px 20px}}
@media(prefers-reduced-motion:reduce){.hero-grid,.contact-inner,.workstation-panel .terminal-card,.workstation-panel .signal-grid,.workstation-panel .signal-card:hover{transform:none;transition:none}.workstation-panel .terminal-bar span{animation:none}.contact-link,.hero-contact .btn-primary,.workstation-panel .signal-card{transition:none}.contact-link:not(.contact-static):hover,.hero-contact .btn-primary:hover{transform:none}}
/* Jade identity and tactile navigation controls. */
nav{box-shadow:0 5px 18px -15px #163f3a70}
.nav-inner{align-items:center}
.nav-brand{position:relative;padding:9px 12px;border-radius:18px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--color-primary) 7%,transparent),transparent 72%);perspective:500px}
.nav-brand picture{position:relative;animation:brand-float 5s ease-in-out infinite;filter:drop-shadow(0 2px 0 #24635b) drop-shadow(0 6px 4px #163f3a30)}
.nav-brand-logo{width:6.6rem;filter:url(#oioi-jade);transition:transform .4s ease}
.nav-brand:hover .nav-brand-logo{transform:translateY(-2px) rotateY(-12deg) rotate(-3deg) scale(1.06)}
.nav-brand::before,.nav-brand::after{content:"";position:absolute;pointer-events:none;width:3px;height:3px;border-radius:50%;background:#70b9a9;box-shadow:0 0 6px #70b9a9,34px -9px 0 -0.5px #bba06b,-20px 12px 0 -0.5px #70b9a9;animation:brand-sparks 6s ease-in-out infinite}
.nav-brand::before{left:20%;top:30%}
.nav-brand::after{right:16%;bottom:24%;animation-delay:-3s}
.nav-actions{gap:10px;align-items:center}
.lang-switcher{padding:5px;gap:3px;background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface));border-color:color-mix(in srgb,var(--color-primary) 15%,var(--color-surface));box-shadow:inset 0 2px 4px #163f3a12,0 1px 0 #ffffff60}
.lang-btn{min-height:34px;transition:background .25s ease,color .25s ease,box-shadow .25s ease,transform .25s ease}
.lang-btn[aria-pressed="true"]{background:linear-gradient(145deg,var(--color-surface-2),var(--color-primary-highlight));box-shadow:inset 0 1px 0 #ffffff70,0 2px 0 color-mix(in srgb,var(--color-primary) 22%,var(--color-surface)),0 4px 7px #163f3a14;transform:translateY(-1px)}
.theme-toggle,.github-nav-link{width:36px;height:36px;border:1px solid color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));border-radius:12px;background:linear-gradient(145deg,var(--color-surface-2),var(--color-surface));box-shadow:inset 0 1px 0 #ffffff50,0 3px 0 color-mix(in srgb,var(--color-primary) 15%,var(--color-surface)),0 7px 12px -8px #163f3a50;transition:transform .25s ease,box-shadow .25s ease}
.theme-toggle:hover,.github-nav-link:hover{transform:translateY(-3px) rotate(-5deg);color:var(--color-primary)}
.lang-btn:active,.theme-toggle:active,.github-nav-link:active{transform:translateY(2px);box-shadow:inset 0 1px 3px #163f3a22}
.nav-actions :focus-visible,.nav-brand:focus-visible{outline:2px solid var(--color-primary);outline-offset:4px}
@keyframes brand-float{50%{transform:translateY(-3px) rotate(-1.5deg)}}
@keyframes brand-sparks{0%,100%{opacity:.25;transform:translate(0,3px)}50%{opacity:.85;transform:translate(7px,-5px)}}
@media(max-width:840px){.nav-inner{gap:12px}.nav-brand{padding:8px}.nav-brand-logo{width:5.8rem}}
@media(max-width:480px){.nav-inner{column-gap:6px}.nav-brand{padding:7px 3px}.nav-brand-logo{width:4.2rem}.nav-actions{gap:6px}.lang-switcher{padding:3px;gap:0}.lang-btn{font-size:11px;padding:7px;min-height:32px}.theme-toggle,.github-nav-link{width:30px;height:32px;padding:6px}.nav-links{gap:18px}}
@media(prefers-reduced-motion:reduce){.nav-brand picture,.nav-brand::before,.nav-brand::after{animation:none}.nav-brand-logo,.lang-btn,.theme-toggle,.github-nav-link{transition:none}.nav-brand:hover .nav-brand-logo,.theme-toggle:hover,.github-nav-link:hover{transform:none}}
/* One raised navigation surface with quiet botanical motion. */
nav{padding:10px 16px 14px;background:color-mix(in srgb,var(--color-bg) 90%,transparent);border-bottom:0;box-shadow:none}
.nav-inner{position:relative;isolation:isolate;padding:12px 18px;border-radius:22px;border:1px solid color-mix(in srgb,var(--color-primary) 18%,var(--color-surface));background:linear-gradient(135deg,var(--color-surface-2),color-mix(in srgb,var(--color-primary) 5%,var(--color-surface)));box-shadow:inset 0 1px 0 #ffffff80,0 4px 0 color-mix(in srgb,var(--color-primary) 15%,var(--color-surface)),0 6px 0 color-mix(in srgb,var(--color-primary) 23%,var(--color-surface)),0 15px 25px -20px #163f3a80}
.nav-links{position:relative;gap:4px;padding:5px;border:1px solid color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));border-radius:22px;background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface));box-shadow:inset 0 2px 4px #163f3a12,0 1px 0 #ffffff60}
.nav-links li{min-width:0}
.nav-links a{display:block;text-align:center;white-space:nowrap;padding:10px 13px;border-radius:17px;font-size:13px;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.nav-links a[aria-current="page"],.nav-links a:hover,.nav-links a:focus-visible{background:linear-gradient(145deg,var(--color-surface-2),var(--color-primary-highlight));color:var(--color-primary);box-shadow:inset 0 1px 0 #ffffff70,0 2px 0 color-mix(in srgb,var(--color-primary) 22%,var(--color-surface)),0 4px 7px #163f3a14;transform:translateY(-1px)}
.nav-links a:active{transform:translateY(2px);box-shadow:inset 0 1px 3px #163f3a22}
.nav-links a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.nav-garden{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:-1}
.nav-clover{position:absolute;width:18px;height:22px;color:#65998a;opacity:.28;filter:drop-shadow(0 2px 1px #164c3925);animation:clover-drift 9s ease-in-out infinite}
.nav-clover-1{left:1%;top:7%;width:14px;animation-delay:-2s}
.nav-clover-2{left:25%;top:4%;animation-delay:-5s}
.nav-clover-3{left:45%;bottom:2%;width:13px;animation-delay:-1s}
.nav-clover-4{right:27%;top:5%;width:15px;animation-delay:-7s}
.nav-clover-5{right:2%;bottom:6%;animation-delay:-4s}
.nav-clover-6{left:15%;bottom:3%;width:12px;animation-delay:-6s}
.nav-pollen{position:absolute;left:36%;top:22%;width:3px;height:3px;border-radius:50%;background:#8db8a1;box-shadow:32px 7px #b4aa78,74px -7px #71a99c,125px 20px #8db8a1,-120px 32px #b4aa78,220px 35px #71a99c;opacity:.5;animation:clover-drift 7s ease-in-out infinite reverse}
@keyframes clover-drift{0%,100%{transform:translate(-3px,3px) rotate(-12deg)}50%{transform:translate(9px,-5px) rotate(18deg)}}
@media(max-width:1100px){.nav-inner{flex-wrap:wrap;gap:12px}.nav-links{order:3;width:100%;justify-content:space-between;overflow:visible;padding:5px}.nav-links li{flex:1}.nav-actions{margin-left:auto}}
@media(max-width:480px){nav{padding:8px 8px 12px}.nav-inner{padding:10px 9px;gap:10px 4px;border-radius:18px}.nav-brand-logo{width:3.8rem}.nav-actions{gap:4px}.nav-links{gap:2px;padding:4px}.nav-links a{font-size:12px;padding:9px 5px}.nav-clover{opacity:.2}}
@media(prefers-reduced-motion:reduce){.nav-clover,.nav-pollen{animation:none}.nav-links a{transition:none}}
