﻿/* Synthwave theme: atmospheric motion, bright accents, readable surfaces. */
:root{--bg:#0b0618;--surface:#140d27;--text:#fff4ff;--muted:#b5aacd;--line:#47234f;--accent:#ff4bc1;--pink:#ff4bc1;--cyan:#66edff;--violet:#9e72ff}
body{background:radial-gradient(ellipse at 88% 5%,#53205735,transparent 35%),radial-gradient(ellipse at 0% 40%,#17366e25,transparent 40%),var(--bg)}
::selection{background:var(--pink);color:#160823}a:focus-visible,button:focus-visible{outline-color:var(--cyan)}
.site-header{background:#0b0618eb;border-bottom-color:#ff4bc13d;box-shadow:0 1px 20px #ff4bc109}.brand-mark{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 15px #66edff33}.brand em{color:var(--pink)}.main-nav a{color:#b7a8ca}.main-nav a:hover,.main-nav a[aria-current]{color:var(--cyan);text-shadow:0 0 12px #66edff55}.main-nav a[aria-current]:after{background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.main-nav .nav-cta{border-color:#ff4bc177;color:#ffd7f3;box-shadow:inset 0 0 18px #ff4bc10a}.main-nav .nav-cta:hover{border-color:var(--pink);box-shadow:0 0 20px #ff4bc12b}.eyebrow{color:#d598d4}.hero{position:relative}.hero-copy{z-index:2}.hero h1{color:#fff1fc;text-shadow:0 0 35px #ff4bc12b}.outline-text{-webkit-text-stroke:1px var(--cyan);text-shadow:0 0 22px #66edff26}.hero .outline-text{animation:neon-breathe 5s ease-in-out infinite}.status-dot{background:var(--cyan);box-shadow:0 0 12px var(--cyan);animation:signal-breathe 4s ease-in-out infinite}.hero-footnote{color:#9582b0}.primary{background:linear-gradient(120deg,#ff66c9,#be77ff);color:#180b25;box-shadow:0 0 24px #ff4bc133;position:relative;overflow:hidden}.primary:before{content:'';position:absolute;inset:-100% -70%;background:linear-gradient(110deg,transparent 40%,#ffffff70 50%,transparent 60%);transform:translateX(-55%);animation:neon-sweep 7s ease-in-out infinite;pointer-events:none}.primary:hover{box-shadow:0 0 34px #ff4bc177}.text-link{border-color:#66edff55;color:#d9f9ff}.text-link:hover{color:var(--cyan);text-shadow:0 0 15px #66edff99}.hero-art{border-radius:4px;background:radial-gradient(ellipse at 50% 45%,#6a236447,transparent 65%)}.hero-art:before{inset:8%;background:radial-gradient(circle,#fe4bae1a,transparent 70%);filter:blur(24px)}.hero-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#09021920 3px 4px);z-index:4;opacity:.6}.synth-sun{position:absolute;width:52%;aspect-ratio:1;left:24%;top:12%;border-radius:50%;background:linear-gradient(#ffdc83 0%,#ff9a7f 28%,#fb5baf 62%,#e338bc 100%);mask-image:linear-gradient(#000 0 48%,transparent 48% 50%,#000 50% 57%,transparent 57% 60%,#000 60% 66%,transparent 66% 70%,#000 70% 75%,transparent 75% 80%,#000 80% 85%,transparent 85% 91%,#000 91%);opacity:.85;animation:sunset-float 10s ease-in-out infinite;z-index:-1}.synth-horizon{position:absolute;left:-25%;right:-25%;top:65%;height:2px;background:var(--pink);box-shadow:0 0 24px 3px #ff4bc177}.art-grid{inset:65% -55% -80%;background-image:linear-gradient(#ff4bc16b 1px,transparent 1px),linear-gradient(90deg,#66edff50 1px,transparent 1px);background-size:45px 45px;transform:perspective(230px) rotateX(52deg);transform-origin:top center;mask-image:linear-gradient(transparent,#000 10%,#000 70%,transparent);animation:grid-drive 2.5s linear infinite}.orbit{border-color:#a972ff70;box-shadow:0 0 14px #9e72ff12}.orbit-one{animation:orbit-drift 12s ease-in-out infinite}.orbit-two{border-color:#66edff44}.face{border-color:var(--cyan);box-shadow:0 0 13px #66edff66,inset 0 0 14px #66edff22;background-image:linear-gradient(#66edff33 1px,transparent 1px),linear-gradient(90deg,#66edff33 1px,transparent 1px);background-color:#0c08211a}.back,.right,.top{border-color:var(--pink);box-shadow:0 0 13px #ff4bc144,inset 0 0 12px #ff4bc11a}.art-cross{color:var(--cyan);text-shadow:0 0 10px #66edff88}.art-label{color:#efd0ee;background:#12091c99;padding:7px 10px;border:1px solid #ff4bc13d;z-index:5}.art-coordinate{color:#bb92cb}.discipline-strip{background:#12091e;border-color:#ff4bc144}.discipline-strip .container{color:#c3aaca}.discipline-strip b{color:var(--pink);text-shadow:0 0 15px #ff4bc188;animation:star-turn 20s linear infinite}.punctuation{color:var(--pink);text-shadow:0 0 18px var(--pink)}.section-note{color:#9b81ae}.filter{border-color:#55335f;color:#d0bade}.filter span{color:#b89fcb}.filter.active,.filter:hover{background:#66edff;color:#100b26;border-color:var(--cyan);box-shadow:0 0 20px #66edff26}.filter.active span,.filter:hover span{color:#263f53}.card,.gallery-button,.exploration-card,.circuit-card{background:linear-gradient(155deg,#21112f,#110d22);border-color:#61335f}.card{position:relative}.card:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--cyan),var(--pink),var(--violet),var(--cyan));background-size:300% 100%;animation:edge-flow 8s linear infinite;opacity:.8;pointer-events:none}.card:hover,.exploration-card:hover{border-color:var(--pink);box-shadow:0 0 30px #ff4bc124}.card-image{filter:saturate(.8)}.card:hover .card-image{filter:saturate(1.15)}.image-index{background:#160925d9;border-color:#ff4bc166;color:#ffb7e7}.image-arrow{background:#160925bb;border-color:#66edff88;color:var(--cyan)}.card:hover .image-arrow{background:var(--cyan);color:#0b0618;box-shadow:0 0 18px #66edff77}.card-category{color:#e793d0}.card-date{color:#9e87b5}.tag,.skill-list span{background:#9e72ff0b;border-color:#76478c;color:#cdb8e9}.about-copy p:first-child{color:#ddcce6}.about-copy strong{color:#ff9bd9}.exploration-symbol{color:var(--cyan);text-shadow:0 0 28px #66edff66;animation:symbol-breathe 5s ease-in-out infinite}.exploration-card:nth-child(2) .exploration-symbol{color:var(--pink);text-shadow:0 0 28px #ff4bc166;animation-delay:-2.5s}.archive-row[href]:hover{background:#ff4bc109}.archive-action,.back-link{color:var(--cyan)}.video-preview{background:radial-gradient(ellipse at center,#472447,#140b26);border-bottom:1px solid #ff4bc133}.video-glyph{color:var(--pink);text-shadow:0 0 22px #ff4bc144}.video-play{border-color:var(--cyan);background:#130c24;color:var(--cyan)}.video-play:hover{background:var(--cyan);color:#120721;box-shadow:0 0 22px #66edff55}.video-notice{color:#a292b8}.build-note{border-color:#653967;background:#ff4bc105}.gallery-caption{color:#c8b3da}.lightbox{background:#100921;border-color:var(--pink);box-shadow:0 0 45px #ff4bc122}.lb-close{background:#23112e;border-color:#c562b4;color:#ffd4f1}.footer-inner{color:#a58ab5}.footer-inner a{color:#cfb8e2}.closing>a span{color:var(--pink);text-shadow:0 0 25px #ff4bc177}.motion-toggle{background:#21132c;border:1px solid #714581;color:#dfc5ee;padding:8px 12px;font:9px Consolas,monospace;letter-spacing:1px}.motion-toggle:hover{border-color:var(--cyan);color:var(--cyan)}
@keyframes neon-breathe{0%,100%{text-shadow:0 0 16px #66edff22}50%{text-shadow:0 0 30px #66edff66}}@keyframes signal-breathe{0%,100%{box-shadow:0 0 7px #66edff88}50%{box-shadow:0 0 18px #66edff;opacity:.75}}@keyframes neon-sweep{0%,65%{transform:translateX(-55%)}90%,100%{transform:translateX(55%)}}@keyframes sunset-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes grid-drive{to{background-position:0 45px}}@keyframes orbit-drift{0%,100%{transform:rotate(-35deg) scaleY(.48)}50%{transform:rotate(-20deg) scaleY(.55)}}@keyframes star-turn{to{transform:rotate(360deg)}}@keyframes edge-flow{to{background-position:300% 0}}@keyframes symbol-breathe{50%{opacity:.65;transform:translateY(-3px)}}
.effects-paused *,.effects-paused *:before,.effects-paused *:after{animation-play-state:paused!important}
@media(max-width:720px){.main-nav{background:#130b24;border-color:#ff4bc155}.nav-toggle{border-color:#a45eae;background:#21112f;color:#eab4ed}.hero-art{margin-top:20px}.footer-inner{row-gap:18px}.synth-sun{width:56%;left:22%}.hero h1{text-shadow:0 0 25px #ff4bc122}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.synth-sun{transform:none}}
/* Skills: scan-friendly capabilities with the complete technical vocabulary. */
.skills-overview{padding-block:70px 85px;border-top:1px solid var(--line)}.capability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.capability-card{display:block;padding:30px;background:linear-gradient(145deg,#22112f,#110e24);border:1px solid #61335f;transition:transform .25s,border-color .25s,box-shadow .25s}.capability-card:hover{transform:translateY(-4px);border-color:var(--cyan);box-shadow:0 0 25px #66edff18}.capability-card h3{font-size:25px;letter-spacing:-.7px;margin:18px 0 12px}.capability-card p{font-size:13px;max-width:480px;margin-bottom:24px}.capability-card:nth-child(even) .eyebrow{color:var(--cyan)}.skills-intro{max-width:850px}.languages-strip{display:flex;flex-wrap:wrap;gap:9px;margin-top:28px}.languages-strip span{font:13px Consolas,monospace;padding:11px 17px;border:1px solid #66edff66;background:#66edff09;color:var(--cyan);box-shadow:0 0 15px #66edff09}.skills-jump{display:flex;flex-wrap:wrap;gap:10px;margin:35px 0 50px}.skills-jump a{font:11px Consolas,monospace;padding:12px 15px;color:#dcc4ed;border:1px solid #654371;background:#21112f}.skills-jump a:hover{color:var(--cyan);border-color:var(--cyan)}.skill-group{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:55px;border-top:1px solid var(--line);padding:40px 0;scroll-margin-top:110px}.skill-group h2{font-size:30px;letter-spacing:-1px}.skill-group p{font-size:13px;max-width:300px}.skills-items{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;align-content:start}.skills-items li{font-size:13px;line-height:1.6;position:relative;padding:13px 0 13px 18px;border-bottom:1px solid #9e72ff22;overflow-wrap:anywhere}.skills-items li:before{content:'';position:absolute;left:0;top:21px;width:4px;height:4px;background:var(--cyan);box-shadow:0 0 8px #66edff55}.skill-group:nth-of-type(even) .skills-items li:before{background:var(--pink);box-shadow:0 0 8px #ff4bc155}.skills-work{display:flex;justify-content:space-between;gap:35px;align-items:center;margin-top:25px;padding:35px;border:1px solid #61335f;background:#21112f66}.skills-work-links{display:flex;flex-direction:column;gap:20px;align-items:flex-start}.skills-work p{font-size:13px}.main-nav{gap:18px}
@media(max-width:1000px){.main-nav{gap:12px}.main-nav .nav-cta{padding:10px}.skill-group{gap:30px;grid-template-columns:1fr 1.5fr}}
@media(max-width:820px) and (min-width:721px){.header-inner{height:auto;min-height:86px;flex-wrap:wrap;padding-block:18px;gap:16px}.main-nav{margin-left:auto}}
@media(max-width:720px){.skills-overview{padding-block:45px}.capability-grid{grid-template-columns:1fr}.capability-card{padding:24px}.skills-overview .section-heading{align-items:flex-start;flex-direction:column;gap:22px}.skill-group{grid-template-columns:1fr;gap:12px;padding-block:30px}.skill-group p{max-width:100%}.skills-items{column-gap:15px}.skills-items li{font-size:12px}.skills-jump{gap:8px;margin-block:25px 35px}.skills-jump a{font-size:10px;padding:10px 12px}.skills-work{flex-direction:column;align-items:flex-start;padding:24px}.main-nav{gap:25px}.languages-strip span{padding:9px 13px}}
/* Shading write-up: equations stay readable on desktop and mobile. */
.shading-section{padding-block:35px 50px;border-top:1px solid var(--line);scroll-margin-top:110px}.shading-intro{max-width:850px;font-size:14px;margin-bottom:28px}.formula-note{font-size:12px;max-width:820px;color:#ba9bca;margin-bottom:35px}.formula-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}.equation-panel{padding:28px;border:1px solid #61335f;background:linear-gradient(145deg,#22112f,#110e24);min-width:0}.equation-panel h3{font-size:21px;margin:0 0 20px}.equation-panel h4{margin-top:24px;font-size:14px}.equation-panel p,.formula-definitions dd{font-size:13px;line-height:1.8;color:var(--muted)}.equation{font:clamp(14px,1.8vw,21px)/1.9 Consolas,monospace;color:var(--cyan);padding:20px;background:#66edff08;border-left:2px solid var(--cyan);overflow-wrap:anywhere}.equation-panel pre{font:12px/1.9 Consolas,monospace;background:#09061a;padding:20px;overflow:auto;border:1px solid #9e72ff33;color:#e8d9fa}.equation-panel p code,.formula-definitions code,.technical-notes p code{font:12px/1.8 Consolas,monospace;color:#f3c0e6;overflow-wrap:anywhere}.formula-definitions dt{color:#fff1fa;font-weight:600;font-size:14px;margin:20px 0 6px}.formula-definitions dd{margin:0}.band-legend{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:14px}.band-legend span{padding:16px 8px;font:10px Consolas,monospace;text-align:center;color:#fff}.band-legend span:nth-child(1){background:#202509}.band-legend span:nth-child(2){background:#3c510f}.band-legend span:nth-child(3){background:#627c18}.band-legend span:nth-child(4){background:#a5ba43;color:#152000}.reference-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:20px}.shading-section .game-screenshot{aspect-ratio:1.1;object-fit:contain;background:#10202b}#shader-foundations{scroll-margin-top:110px}
@media(max-width:720px){.formula-layout{grid-template-columns:1fr}.equation-panel{padding:20px}.equation{padding:15px;font-size:16px}.equation-panel pre{font-size:11px;padding:14px}.band-legend{grid-template-columns:repeat(2,1fr)}.shading-section{padding-block:30px}.shading-section .section-heading{margin-bottom:20px}}
/* Unified entry collection. */
.entry-search{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;gap:16px;align-items:end;padding:24px;border:1px solid #61335f;background:#21112f66}.search-field{min-width:0;display:flex;flex-direction:column;gap:10px}.search-field label{font:11px Consolas,monospace;color:#dcbce9}.search-field input,.search-field select{width:100%;min-height:46px;padding:12px;background:#0e091d;color:#f4e6ff;border:1px solid #765486;font:13px 'Segoe UI',sans-serif;border-radius:0}.search-field input:focus,.search-field select:focus{outline:2px solid var(--cyan);outline-offset:2px}.search-clear{min-height:46px;border:1px solid #66edff77;background:#66edff09;padding:12px 18px;color:var(--cyan);font:11px Consolas,monospace}.search-clear:disabled{opacity:.45;cursor:default}.search-help{font-size:11px;margin:12px 0;color:#a993bc}.result-count{font:11px Consolas,monospace;letter-spacing:1px;color:var(--cyan);margin:26px 0 20px}.entry-type-links{display:flex;gap:10px;margin-top:25px}.tag[href]:hover{border-color:var(--cyan);color:var(--cyan)}.empty-results{border:1px dashed #765486;padding:45px;text-align:center}.empty-results[hidden]{display:none}.entry-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:radial-gradient(ellipse at center,#46204c,#120c25)}.entry-symbol{font:70px Consolas,monospace;color:var(--cyan);text-shadow:0 0 25px #66edff44}.entry-cover-label{font:10px Consolas,monospace;letter-spacing:3px;color:#d79acb}.image-wrap{display:block}.image-wrap.entry-cover{display:flex}.entry-status{display:block;font:10px Consolas,monospace;color:#ffb587;margin-bottom:16px}.entry-source{margin-top:28px}#entry-body .circuit-card{max-width:850px}#entry-body .video-preview{aspect-ratio:16/9}.card h3 a:hover{color:var(--cyan)}
@media(max-width:720px){.entry-search{grid-template-columns:1fr;padding:20px;gap:18px}.search-clear{width:100%}.empty-results{padding:30px 20px}}

.emboss-kernel{border-collapse:collapse;margin:24px auto;font:24px monospace;text-align:center}.emboss-kernel td{padding:15px 24px;border:1px solid #754180;color:#ff9fdf;background:#170f24}.equation{overflow-wrap:anywhere}@media(max-width:700px){.emboss-kernel td{padding:12px 20px}}

.detail-meta{flex-wrap:wrap;max-width:100%}.detail-meta .tag{white-space:normal}
