/* ============================================================================
   Emre Portfolio — flattened styles
   Ported verbatim from the <helmet> block of "Emre Sahin.dc.html".
   Fonts self-hosted from ../fonts/ (paths are relative to this stylesheet).
   ========================================================================== */

@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-Light.otf') format('opentype'); font-weight:300; font-display:swap; }
@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-Normal.otf') format('opentype'); font-weight:400; font-display:swap; }
@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-Medium.otf') format('opentype'); font-weight:500; font-display:swap; }
@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-SemiBold.otf') format('opentype'); font-weight:600; font-display:swap; }
@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-Bold.otf') format('opentype'); font-weight:700; font-display:swap; }
@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-ExtraBold.otf') format('opentype'); font-weight:800; font-display:swap; }
@font-face { font-family:'RNS Sanz'; src:url('../fonts/RNSSanz-Black.otf') format('opentype'); font-weight:900; font-display:swap; }
@font-face { font-family:'RNS Sanz SC'; src:url('../fonts/RNSSanzSC-Bold.otf') format('opentype'); font-weight:700; font-display:swap; }
@font-face { font-family:'RNS Sanz SC'; src:url('../fonts/RNSSanzSC-ExtraBold.otf') format('opentype'); font-weight:800; font-display:swap; }
@font-face { font-family:'Scripter'; src:url('../fonts/Scripter.otf') format('opentype'); font-weight:400; font-display:swap; }

html, body { margin:0; height:100%; overflow:hidden; background:#0B211E; color:#E7E7EB; font-family:'RNS Sanz',sans-serif; -webkit-font-smoothing:antialiased; }
::selection { background:#4FE3CB; color:#0F2A26; }
button { font-family:inherit; }

@keyframes ep-spin { to { transform:rotate(360deg); } }
@keyframes ep-morph { 0% { border-radius:50% 42% 50% 38% / 38% 50% 42% 50%; } 50% { border-radius:42% 58% 38% 56% / 50% 36% 60% 44%; } 100% { border-radius:56% 38% 60% 40% / 44% 58% 36% 50%; } }
@keyframes ep-pulse { 0%,100% { opacity:0.45; transform:scale(1); } 50% { opacity:1; transform:scale(1.25); } }
@keyframes ep-hint { 0%,100% { transform:translateY(0); opacity:0.6; } 50% { transform:translateY(5px); opacity:1; } }
@keyframes ep-nodepulse { 0%,100% { box-shadow:0 0 10px 2px rgba(79,227,203,0.5); } 50% { box-shadow:0 0 20px 6px rgba(79,227,203,0.95); } }

.jr { display:grid; grid-template-columns:286px 1fr; gap:44px; max-width:1080px; align-items:stretch; }
.jr-map { position:relative; padding-left:24px; display:flex; flex-direction:column; gap:3px; }
.jr-line { position:absolute; left:5px; top:18px; bottom:18px; width:2px; background:linear-gradient(rgba(79,227,203,0.6), rgba(79,227,203,0.1)); border-radius:2px; transform:scaleY(0); transform-origin:top; transition:transform .9s cubic-bezier(.65,0,.35,1) .1s; }
.scene-on .jr-line { transform:scaleY(1); }
.jr-orb { position:absolute; left:-1px; width:14px; height:14px; border-radius:50%; background:#4FE3CB; box-shadow:0 0 16px 4px rgba(79,227,203,0.9); top:18px; opacity:0; transition:top .55s cubic-bezier(.65,0,.35,1), opacity .5s; z-index:2; }
.scene-on .jr-orb { opacity:1; }
.jr-stop { position:relative; padding:9px 10px 9px 14px; border-radius:10px; cursor:pointer; opacity:0; transform:translateX(-14px); transition:opacity .5s, transform .5s, background .25s; }
.scene-on .jr-stop { opacity:1; transform:none; }
.jr-stop::before { content:''; position:absolute; left:-20px; top:50%; transform:translateY(-50%); width:8px; height:8px; border-radius:50%; background:#0F2A26; border:2px solid rgba(79,227,203,0.45); transition:border-color .3s, box-shadow .3s; }
.jr-stop:hover { background:rgba(79,227,203,0.06); }
.jr-stop[aria-selected="true"] { background:rgba(79,227,203,0.10); }
.jr-stop[aria-selected="true"]::before { border-color:#4FE3CB; box-shadow:0 0 10px rgba(79,227,203,0.85); }
.jr-yr { font-family:'JetBrains Mono',monospace; font-size:11px; color:#7E9F97; transition:color .3s; }
.jr-stop[aria-selected="true"] .jr-yr { color:#4FE3CB; }
.jr-rl { font-family:'RNS Sanz',sans-serif; font-weight:600; font-size:14px; line-height:1.22; color:#BFD8D1; transition:color .3s; }
.jr-stop[aria-selected="true"] .jr-rl { color:#E7E7EB; }
.jr-detail { position:relative; border:1px solid rgba(79,227,203,0.2); border-radius:24px; padding:38px 42px; background:rgba(20,54,48,0.55); box-shadow:inset 0 1px 0 rgba(182,242,201,0.16); overflow:hidden; display:flex; flex-direction:column; justify-content:center; opacity:0; transform:translateY(16px); }
.scene-on .jr-detail { opacity:1; transform:none; transition:opacity .6s .25s, transform .6s .25s; }
.jr-detail .jr-glow { position:absolute; right:-90px; top:-90px; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle, rgba(79,227,203,0.2), transparent 70%); filter:blur(34px); pointer-events:none; }
.jr-fade { transition:opacity .3s ease, transform .3s ease; }
.jr-foot { opacity:0; transform:translateY(16px); transition:opacity .6s ease .45s, transform .6s ease .45s; }
.scene-on .jr-foot { opacity:1; transform:none; }
.jr-chip { font-family:'RNS Sanz',sans-serif; font-size:13px; color:#CFE3DD; border:1px solid rgba(79,227,203,0.28); border-radius:999px; padding:7px 13px; }
button:focus-visible, a:focus-visible { outline:2px solid #4FE3CB; outline-offset:3px; border-radius:4px; }
#stage-root::after { content:''; position:fixed; inset:0; pointer-events:none; z-index:5; opacity:0.05; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E"); }
@media (prefers-reduced-motion: reduce) { *, #geo-core { animation:none !important; } [data-scene] { transition-duration:0.001ms !important; } }
