:root{--bg-base: #1A1A1F;--bg-gradient-start: #0a0a0a;--bg-gradient-end: #1A1A1F;--blob-highlight: #ffffff;--blob-mid1: #94a3b8;--blob-mid2: #475569;--blob-shadow: #0f172a;--blob-accent: #22d3ee;--glass-fill: rgba(255, 255, 255, .03);--glass-border: rgba(255, 255, 255, .08);--glass-glow: rgba(255, 255, 255, .05);--text-primary: #f8fafc;--text-secondary: #94a3b8;--text-accent: #38bdf8;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);overflow-x:hidden;min-height:100vh;-webkit-font-smoothing:antialiased}#app{position:relative;z-index:1}#canvas-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:all;background:radial-gradient(circle at center,var(--bg-gradient-start),var(--bg-gradient-end))}.glass{background:var(--glass-fill);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:4px;position:relative;overflow:hidden}h1,h2,h3{font-weight:200;letter-spacing:-.02em}a,a:link,a:visited{color:var(--text-accent);font-weight:500}a:hover,a:active{color:var(--text-primary)}.mono-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;color:var(--text-secondary)}main{padding:2rem;max-width:1200px;margin:0 auto}section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.hero-content{max-width:800px;margin:0 auto}.hero-title{font-family:Ubuntu,Helvetica Neue,Helvetica,sans-serif;font-size:clamp(3rem,8vw,6rem);line-height:1.1;margin-bottom:1rem;background:linear-gradient(to right,#fff,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.grid-overlay{position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:100px 100px;pointer-events:none;z-index:0}.fm-logo{width:160px;height:160px;cursor:pointer;transition:transform .3s ease;display:block;margin-bottom:2rem;animation-name:slide;animation-duration:.5s;animation-delay:.5s;animation-timing-function:cubic-bezier(.075,.82,.165,1);animation-fill-mode:forwards;display:inline-block;position:relative}.fm-logo:hover{transform:scale(1.05)}.fm-logo-circle{fill:none;stroke:color-mix(in srgb,var(--text-primary) 66%,transparent);stroke-width:3;stroke-dashoffset:0;transform-origin:center;stroke-dasharray:628;animation:dash 1s ease-in .3s;width:160px;height:160px;transition-property:stroke-dasharray,opacity;transition-duration:.75s;transition-timing-function:cubic-bezier(.95,.05,.795,.735)}.fm-logo-container:hover .fm-logo-circle{stroke:var(--blob-mid1);animation:spin-stroke 2s linear infinite;stroke-dasharray:3;opacity:.66}.fm-logo-text{fill:var(--text-primary);transition:fill .3s ease}.fm-logo-container #fmGlyph{width:72px;left:calc(50% - 36px);top:56px;position:absolute}.fm-logo-container{animation-name:slide;animation-duration:.5s;animation-delay:.5s;animation-timing-function:cubic-bezier(.075,.82,.165,1);animation-fill-mode:forwards;display:inline-block;position:relative}.fm-logo:hover .fm-logo-text{fill:var(--blob-highlight)}@keyframes spin-stroke{0%{stroke-dashoffset:0;transform:rotate(0)}50%{stroke-dashoffset:150;transform:rotate(180deg)}to{stroke-dashoffset:300;transform:rotate(360deg)}}#work{padding-top:4rem;padding-bottom:4rem}.work-list{display:flex;flex-direction:column;gap:1rem;width:100%;margin-top:2rem;max-width:800px}.work-row{display:grid;grid-template-columns:2fr 1fr 1fr;align-items:center;padding:1rem 1.5rem;text-decoration:none;color:var(--text-primary);transition:transform .2s ease,background .2s ease,border-color .2s ease;border-radius:12px;opacity:0;transform:translateY(20px)}.work-row.visible{opacity:1;transform:translateY(0);transition:opacity .6s ease-out,transform .6s ease-out;background:#ffffff03;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid rgba(249,253,255,.03);position:relative;overflow:hidden}.work-row:hover{transform:scale(1.01);background:#ffffff05;border-color:color-mix(in srgb,var(--blob-accent) 50%,transparent)}.work-row:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent)}.work-row:after{content:"";position:absolute;top:0;left:0;width:1px;height:100%;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent,rgba(255,255,255,.1))}.work-col{font-size:1rem}.project-name{font-size:1.25rem;font-weight:500;color:var(--text-primary);text-align:left}.project-year{color:var(--text-secondary);font-family:var(--font-mono);font-size:.875rem;text-align:left}.project-role{color:var(--text-secondary);text-align:right}.skills{font-family:var(--font-mono);color:var(--text-secondary)}@media(max-width:768px){.work-row{grid-template-columns:1fr;gap:.5rem;text-align:left}.project-role{text-align:left}}.dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1000;display:flex;justify-content:center;align-items:center;opacity:0;pointer-events:none;transition:opacity .3s ease}.dialog-overlay[aria-hidden=false]{opacity:1;pointer-events:auto}.dialog-content{width:90%;max-width:600px;padding:3rem;border-radius:16px;transform:scale(.95);transition:transform .3s cubic-bezier(.16,1,.3,1);position:relative;background:#141419cc;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px -12px #00000080}.dialog-overlay[aria-hidden=false] .dialog-content{transform:scale(1)}.close-button{position:absolute;top:1.5rem;right:1.5rem;background:transparent;border:none;color:var(--text-secondary);font-size:2rem;cursor:pointer;line-height:1;padding:.5rem;transition:color .2s ease}.close-button:hover{color:var(--text-primary);border-color:transparent}.dialog-title{font-size:2rem;color:var(--text-primary);margin-bottom:.5rem;font-weight:600}.dialog-role{font-size:1.25rem;color:var(--blob-mid1);margin-bottom:.25rem;font-weight:500}.dialog-year{font-family:var(--font-mono);font-size:.875rem;color:var(--text-secondary);margin-bottom:2rem}.dialog-summary{font-size:1.1rem;line-height:1.7;color:var(--text-primary)}.dialog-summary p{margin-bottom:1rem}.dialog-summary ul{margin-top:.5rem;margin-bottom:1rem;padding-left:1.5rem;list-style-type:disc}.dialog-summary li{margin-bottom:.5rem;color:var(--text-secondary)}.dialog-summary b,.dialog-summary strong{font-weight:600;color:var(--blob-highlight)}
