@font-face{font-family:montserrat;src:url(/fonts/montserrat-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:montserrat;src:url(/fonts/montserrat-latin-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--color-bg:#000000;--color-text:#f5f7fa;--color-accent:#29d9c4;--color-muted:#7c8698;--color-border:#1c2330;--color-glow:rgba(41, 217, 196, 0.35);--color-glow-soft:rgba(41, 217, 196, 0.12)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background-color:var(--color-bg);background-image:repeating-linear-gradient( rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,transparent 1px,transparent 3px ),radial-gradient(ellipse at 50% 0%,transparent 0%,rgba(0,0,0,.75) 78%),linear-gradient(rgba(41,217,196,5%) 1px,transparent 1px),linear-gradient(90deg,rgba(41,217,196,5%) 1px,transparent 1px);background-size:auto,auto,48px 48px,48px 48px;background-attachment:fixed,fixed,fixed,fixed;color:var(--color-text);font-family:montserrat,sans-serif;min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-accent)}.page a:hover{text-shadow:0 0 6px var(--color-glow)}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(41,217,196,.35);box-shadow:0 1px 16px rgba(41,217,196,.12)}.site-header .brand{font-weight:700;font-size:1.5rem;text-decoration:none;letter-spacing:.01em}.site-header .brand .osf{color:var(--color-text)}.site-header .brand .bike{color:var(--color-accent)}.site-header nav{display:flex;gap:.5rem}.site-header nav a{color:var(--color-muted);text-decoration:none;font-size:.9rem;letter-spacing:.02em;text-transform:uppercase;padding:.3rem .6rem;border-radius:4px;transition:background-color .15s,color .15s}.site-header nav a:hover{color:var(--color-accent)}.site-header nav a.active{color:var(--color-bg);background:var(--color-accent);box-shadow:0 0 4px rgba(41,217,196,.6),0 0 14px var(--color-glow)}@media(max-width:760px){.site-header{padding:1rem}.site-header .brand{font-size:1.1rem}.site-header nav{gap:.25rem}.site-header nav a{font-size:.7rem;letter-spacing:.01em;padding:.25rem .35rem}}.site-footer{text-align:center;padding:2rem 1.5rem;color:var(--color-muted);font-size:.8rem}.site-footer p{margin:0 0 .6rem}.site-footer a{color:var(--color-muted);text-decoration:none}.site-footer .github-link{display:inline-flex;align-items:center}.site-footer a:hover{color:var(--color-accent)}main{flex:1;width:100%}main:not(.main-home){max-width:880px;margin:0 auto;padding:0 1.5rem}main.main-home{padding:0}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.story-section{padding:5rem 1.5rem;border-top:1px solid var(--color-border)}.story-cta-section{text-align:center}.story-row{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:3.5rem}.story-row--reverse{flex-direction:row-reverse}@media(max-width:760px){.story-row{flex-direction:column}}@media(max-width:760px){.story-section:not(.story-cta-section)::after{content:"";display:block;width:10px;height:10px;margin:3.5rem auto 0;border-right:2px solid var(--color-accent);border-bottom:2px solid var(--color-accent);transform:rotate(45deg);animation:scroll-cue-bounce 1.8s ease-in-out infinite}}@keyframes scroll-cue-bounce{0%,100%{transform:translateY(0)rotate(45deg)}50%{transform:translateY(8px)rotate(45deg)}}@media(max-width:760px) and (prefers-reduced-motion:reduce){.story-section:not(.story-cta-section)::after{animation:none}}.story-text{flex:1 1 320px;min-width:280px;line-height:1.7}.story-text h2{border-left:3px solid var(--color-accent);padding:.15rem 0 .15rem .9rem;margin:0 0 1rem;font-size:clamp(1.4rem,3.5vw,1.75rem);text-shadow:0 0 8px rgba(41,217,196,.15)}.story-text p{color:var(--color-text);margin:0 0 1rem}.story-text em{color:var(--color-accent);font-style:normal}.story-cta{display:inline-block;margin-top:.5rem;color:var(--color-accent);text-decoration:none;font-weight:700;border-bottom:1px dashed var(--color-accent);padding-bottom:.1rem}.story-cta:hover{text-shadow:0 0 8px var(--color-glow)}.term-chip{display:block;margin-top:1rem}.term-chip summary{display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;list-style:none;color:var(--color-muted);font-size:.85rem;border:1px dashed var(--color-muted);border-radius:999px;padding:.35rem .9rem;transition:color .15s,border-color .15s}.term-chip summary::-webkit-details-marker{display:none}.term-chip:hover summary,.term-chip[open] summary{color:var(--color-accent);border-color:var(--color-accent)}.term-chip-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid;font-size:.7rem}.term-chip p{margin:.75rem 0 0;padding:.9rem 1rem;max-width:420px;background:#05080a;border:1px solid rgba(41,217,196,.35);border-radius:8px;box-shadow:0 0 24px rgba(41,217,196,.12);color:var(--color-text);font-size:.85rem;line-height:1.5}.term-chip p strong{color:var(--color-accent)}.story-media{flex:1 1 320px;min-width:280px;display:flex;justify-content:center}.story-frame{width:100%;border-radius:14px;overflow:hidden;border:1px solid rgba(41,217,196,.3);box-shadow:0 0 40px rgba(41,217,196,.12),0 20px 60px rgba(0,0,0,.5);background:#05080a}.story-frame--phone{max-width:280px}.story-frame--browser{max-width:520px}.story-frame--photo{max-width:520px;position:relative}.story-frame--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.34));pointer-events:none}.story-frame img{display:block;width:100%;height:auto}.story-frame-bar{display:flex;gap:6px;align-items:center;padding:10px 12px;background:#0a0f12;border-bottom:1px solid rgba(41,217,196,.15)}.story-frame-bar span{width:9px;height:9px;border-radius:50%;background:var(--color-border)}.story-cta-block h2{border:none;padding:0;font-size:clamp(1.5rem,4vw,2rem);text-shadow:0 0 10px rgba(41,217,196,.15)}.story-cta-block p{color:var(--color-muted);max-width:480px;margin:.75rem auto 2rem}.cta-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem}.cta-links a:not(.story-cta){color:var(--color-muted);text-decoration:none;font-size:.9rem;letter-spacing:.02em;text-transform:uppercase}.cta-links a:not(.story-cta):hover{color:var(--color-accent)}.page{--corner:20px;position:relative;margin:2.5rem 0 4rem;padding:clamp(1.5rem,3.5vw,2.5rem);line-height:1.6;border:1px solid rgba(41,217,196,.22);box-shadow:0 0 30px rgba(41,217,196,8%),inset 0 0 60px rgba(41,217,196,3%);background-repeat:no-repeat;background-image:linear-gradient(180deg,rgba(41,217,196,5%),rgba(41,217,196,0) 60%),linear-gradient(to right,var(--color-accent) 2px,transparent 2px),linear-gradient(to bottom,var(--color-accent) 2px,transparent 2px),linear-gradient(to left,var(--color-accent) 2px,transparent 2px),linear-gradient(to bottom,var(--color-accent) 2px,transparent 2px),linear-gradient(to right,var(--color-accent) 2px,transparent 2px),linear-gradient(to top,var(--color-accent) 2px,transparent 2px),linear-gradient(to left,var(--color-accent) 2px,transparent 2px),linear-gradient(to top,var(--color-accent) 2px,transparent 2px);background-size:100% 100%,var(--corner)2px,2px var(--corner),var(--corner)2px,2px var(--corner),var(--corner)2px,2px var(--corner),var(--corner)2px,2px var(--corner);background-position:0 0,0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%}.page h1{color:var(--color-accent);font-size:clamp(1.75rem,5vw,2.25rem);margin-bottom:.25rem;text-shadow:0 0 10px rgba(41,217,196,.2)}.page h2{color:var(--color-text);border-top:none;border-left:3px solid var(--color-accent);padding:.15rem 0 .15rem .9rem;margin-top:2.25rem;text-shadow:0 0 8px rgba(41,217,196,.15)}.page p,.page li{color:var(--color-text)}.page .page-date{color:var(--color-muted);font-size:.85rem}.entry-list{list-style:none;padding:0;margin-top:2rem}.entry-list li{padding:1rem 0 1rem 1rem;border-top:1px solid var(--color-border);border-left:2px solid transparent;transition:border-color .2s,background-color .2s}.entry-list li:hover{border-left-color:var(--color-accent);background:rgba(41,217,196,4%)}.entry-list li:first-child{border-top:none}.entry-list a{font-weight:700;text-decoration:none}.entry-list a:hover{color:var(--color-accent)}.entry-list time{display:block;color:var(--color-muted);font-size:.8rem;margin-top:.15rem}.entry-list p{color:var(--color-muted);margin:.4rem 0 0}.flash-card{display:block;padding:1rem 1.1rem;margin-top:2rem;border-top:1px solid var(--color-border);border-left:2px solid transparent;text-decoration:none;transition:border-color .2s,background-color .2s}.flash-card:first-of-type{margin-top:2rem;border-top:none}.flash-card:hover{border-left-color:var(--color-accent);background:rgba(41,217,196,4%)}.flash-card-name{display:block;font-weight:700;color:var(--color-text)}.flash-card-desc{display:block;color:var(--color-muted);font-size:.85rem;margin-top:.3rem}