:root{--bg: #F8F9FB;--bg-deep: #F2F4F7;--line: #1a1a2e;--cyan: #0066CC;--cyan-soft: rgba(0, 102, 204, .08);--orange: #E85D4E;--slate: #6B7280;--steel: #E5E7EB;--steel-soft: #EEF0F3;--glow: rgba(0, 102, 204, .15);--yellow: #B8860B;--card-bg: rgba(255, 255, 255, .78);--card-bg-strong: rgba(255, 255, 255, .88);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}html,body{background-color:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(0,102,204,.04),transparent),radial-gradient(ellipse 60% 40% at 50% 100%,rgba(232,93,78,.03),transparent);color:var(--line);font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;cursor:none;min-height:100vh;letter-spacing:-.011em}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--cyan),var(--orange));width:0%;z-index:200;transition:width .1s var(--ease-soft);opacity:.7}.cursor{position:fixed;width:22px;height:22px;border:1.25px solid var(--cyan);border-radius:50%;pointer-events:none;z-index:9999;transition:transform .18s var(--ease-out),width .3s var(--ease-out),height .3s var(--ease-out),border-color .3s var(--ease-out),background .3s var(--ease-out);transform:translate(-50%,-50%);mix-blend-mode:difference}.cursor:before{content:"";position:absolute;top:50%;left:50%;width:3px;height:3px;background:var(--cyan);border-radius:50%;transform:translate(-50%,-50%);transition:background .3s var(--ease-out)}.cursor.snap{width:10px;height:10px;background:var(--orange);border-color:var(--orange)}.cursor.snap:before{background:#fff}.cursor.crosshair{width:44px;height:44px;border-color:var(--line);border-radius:0;background:transparent;mix-blend-mode:normal}.cursor.crosshair:before{background:var(--line)}.cursor.crosshair:after,.cursor.crosshair:before{content:"";position:absolute;background:var(--line)}.cursor.crosshair:before{width:100%;height:1px;top:50%;left:0}.cursor.crosshair:after{height:100%;width:1px;left:50%;top:0}#canvas-container{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1}.content-wrapper{position:relative;z-index:2;pointer-events:none}.content-wrapper>*{pointer-events:auto}h1,h2,h3,h4{font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;font-weight:500;letter-spacing:-.022em;line-height:1.05}.mono{font-family:JetBrains Mono,ui-monospace,SF Mono,Menlo,monospace;color:var(--cyan);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:400}nav{position:fixed;top:0;left:0;width:100%;padding:1.5rem 4rem;display:flex;justify-content:space-between;align-items:center;z-index:100;pointer-events:auto;background:linear-gradient(to bottom,rgba(248,249,251,.82) 0%,rgba(248,249,251,.5) 60%,transparent 100%);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(229,231,235,.4)}.nav-logo{font-family:JetBrains Mono,monospace;font-size:.88rem;color:var(--line);text-decoration:none;font-weight:500;letter-spacing:.04em;transition:opacity .3s var(--ease-out);cursor:none}.nav-logo:hover{opacity:.7}.nav-logo:before{content:"[ ";color:var(--yellow)}.nav-logo:after{content:" ]";color:var(--yellow)}.nav-links{display:flex;gap:2.75rem;list-style:none}.nav-links a{font-family:JetBrains Mono,monospace;color:var(--slate);text-decoration:none;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;transition:color .3s var(--ease-out),transform .3s var(--ease-out);cursor:none;position:relative}.nav-links a:hover{color:var(--line)}.nav-links a:after{content:"";position:absolute;left:50%;bottom:-6px;width:0;height:1px;background:var(--cyan);transition:width .4s var(--ease-out),left .4s var(--ease-out)}.nav-links a:hover:after{width:100%;left:0}section{min-height:100vh;padding:8rem 4rem;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative}.coord-hud{position:fixed;bottom:2rem;right:2rem;font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--slate);text-align:right;z-index:100;pointer-events:none;background:#fff9;backdrop-filter:blur(10px) saturate(160%);-webkit-backdrop-filter:blur(10px) saturate(160%);padding:.6rem .9rem;border:1px solid rgba(229,231,235,.6);border-radius:6px;letter-spacing:.06em}.coord-hud span{color:var(--cyan)}.coord-hud .hint{color:var(--yellow);display:block;margin-top:.35rem;font-size:.65rem;letter-spacing:.1em}#hero{align-items:center;text-align:center}.hero-content{position:relative;z-index:2;padding:0 3rem;overflow:visible;width:100%;max-width:100%}.hero-eyebrow{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--slate);letter-spacing:.3em;text-transform:uppercase;margin-bottom:1.5rem;display:inline-block;padding:.4rem 1rem;border:1px solid var(--steel);border-radius:100px;background:#ffffff80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-eyebrow .dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#34c759;margin-right:.5rem;vertical-align:middle;box-shadow:0 0 8px #34c75999;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.hero-title{font-size:clamp(3.5rem,10vw,8rem);font-weight:600;line-height:.92;letter-spacing:-.03em;color:var(--line);margin-bottom:1.5rem;background:linear-gradient(180deg,#1a1a2e,#2a2a4e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-subtitle{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}.hero-subtitle span{font-family:JetBrains Mono,monospace;color:var(--yellow);font-size:.82rem;border:1px solid var(--steel);padding:.5rem 1.25rem;background:#ffffffa6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:100px;transition:all .3s var(--ease-out)}.hero-subtitle span:hover{border-color:var(--yellow);transform:translateY(-1px);background:#ffffffe6}.hero-cta{margin-top:3rem;display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 2rem;background:var(--line);color:#fff;text-decoration:none;border-radius:100px;font-size:.9rem;font-weight:500;letter-spacing:-.01em;transition:all .4s var(--ease-out);cursor:none;box-shadow:0 4px 14px #1a1a2e26,0 1px 3px #1a1a2e14}.hero-cta:hover{background:#2a2a4e;transform:translateY(-2px);box-shadow:0 8px 24px #1a1a2e33,0 2px 6px #1a1a2e1a}.hero-cta .arrow{transition:transform .4s var(--ease-out)}.hero-cta:hover .arrow{transform:translate(3px)}.scroll-indicator{margin-top:3rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:bounce 2s infinite}.scroll-text{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--slate);letter-spacing:.12em;text-transform:uppercase}.scroll-arrow{font-size:1.5rem;color:var(--cyan);transition:color .3s var(--ease-out)}.scroll-indicator:hover .scroll-arrow{color:var(--orange)}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}.schematic-panel{width:100%;max-width:560px;background:var(--card-bg);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(229,231,235,.7);padding:2.75rem;position:relative;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 24px 48px -12px #0000000a;border-radius:4px;transition:transform .6s var(--ease-out),box-shadow .6s var(--ease-out)}.schematic-panel:hover{transform:translateY(-2px);box-shadow:0 1px 2px #0000000a,0 12px 32px #00000014,0 32px 64px -12px #0000000f}.schematic-panel:before,.schematic-panel:after{content:"";position:absolute;width:10px;height:10px;border-color:var(--orange);transition:width .4s var(--ease-out),height .4s var(--ease-out)}.schematic-panel:before{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid}.schematic-panel:after{bottom:-1px;right:-1px;border-bottom:1px solid;border-right:1px solid}.schematic-panel:hover:before,.schematic-panel:hover:after{width:14px;height:14px}.section-title{font-size:clamp(2.2rem,4vw,3rem);font-weight:400;margin-bottom:1.25rem;letter-spacing:-.025em}.schematic-list{list-style:none;margin-top:1.75rem}.schematic-item{margin-bottom:1.5rem;border-left:1.5px solid var(--steel);padding-left:1.1rem;transition:all .4s var(--ease-out)}.schematic-item:hover{border-left-color:var(--cyan);padding-left:1.4rem}.schematic-item .mono{display:block;margin-bottom:.3rem;font-size:.7rem}.schematic-item h3{font-size:1.15rem;font-weight:500;margin-bottom:.3rem}.schematic-item p{color:var(--slate);font-size:.88rem;margin-top:.3rem;line-height:1.55}.schematic-item p a{color:var(--cyan);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}.schematic-item p a:hover{border-color:var(--cyan)}#projects{gap:3rem}.project-dossier{width:100%;max-width:640px;background:var(--card-bg-strong);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(0,102,204,.25);padding:2.75rem;position:relative;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 24px 48px -12px #0000000a;border-radius:6px;transition:all .5s var(--ease-out)}.project-dossier:hover{transform:translateY(-3px);box-shadow:0 1px 2px #0000000a,0 16px 40px #0000001a,0 32px 64px -12px #0000000f;border-color:#0066cc80}.project-dossier:nth-child(2n){border-color:#e85d4e40}.project-dossier:nth-child(2n):hover{border-color:#e85d4e80}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-title{font-size:clamp(1.75rem,3vw,2.1rem);font-weight:500;letter-spacing:-.022em}.project-status{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:100px;background:#34c7591f;color:#2d7d3e;font-family:JetBrains Mono,monospace;font-size:.65rem;letter-spacing:.1em;font-weight:500}.project-status .live-dot{width:5px;height:5px;border-radius:50%;background:#34c759;box-shadow:0 0 6px #34c759b3;animation:pulse-dot 2s ease-in-out infinite}.project-status.warm{background:#e85d4e1f;color:#b23e32}.project-status.warm .live-dot{background:var(--orange);box-shadow:0 0 6px #e85d4eb3}.project-description{color:var(--slate);line-height:1.65;font-size:.92rem;margin-top:1rem;letter-spacing:-.005em}.tech-stack{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.5rem}.tech-tag{font-family:JetBrains Mono,monospace;font-size:.68rem;border:1px solid var(--steel);padding:.32rem .8rem;color:var(--line);background:#ffffff80;border-radius:4px;transition:all .3s var(--ease-out)}.tech-tag:hover{border-color:var(--cyan);color:var(--cyan);background:#0066cc0f}#contact{align-items:center;text-align:center;min-height:80vh}.contact-card{width:100%;max-width:600px;background:var(--card-bg-strong);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(229,231,235,.7);padding:3rem;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 32px 64px -16px #0000000f;border-radius:8px;text-align:left}.contact-card h2{font-size:clamp(1.8rem,3.5vw,2.2rem);font-weight:500;margin-bottom:.5rem;letter-spacing:-.025em}.contact-card .contact-subtitle{color:var(--slate);font-size:.92rem;margin-bottom:2rem;line-height:1.55}.contact-form input,.contact-form textarea{width:100%;background:#ffffffd9;border:1px solid var(--steel);color:var(--line);padding:.95rem 1.15rem;margin-bottom:1rem;font-family:Inter,sans-serif;font-size:.95rem;border-radius:6px;transition:border-color .3s var(--ease-out),box-shadow .3s var(--ease-out),background .3s var(--ease-out);letter-spacing:-.005em}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#9ca3af;font-weight:400}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 4px #0066cc1a;background:#fff}.contact-form textarea{resize:vertical;min-height:120px}.contact-btn{width:100%;background:var(--cyan);color:#fff;border:none;padding:.95rem;font-family:Inter,sans-serif;font-weight:500;font-size:.95rem;border-radius:6px;cursor:none;transition:all .3s var(--ease-out);letter-spacing:-.01em;box-shadow:0 2px 8px #06c3}.contact-btn:hover{background:#0052a3;transform:translateY(-1px);box-shadow:0 4px 16px #0066cc4d}.contact-btn:active{transform:translateY(0)}.contact-info{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--steel);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.contact-info a{color:var(--cyan);text-decoration:none;font-size:.9rem;transition:color .3s var(--ease-out)}.contact-info a:hover{color:var(--orange)}.contact-info .info-label{font-family:JetBrains Mono,monospace;font-size:.68rem;color:var(--slate);text-transform:uppercase;letter-spacing:.12em;display:block;margin-bottom:.3rem}#horizon{min-height:90vh;align-items:center;text-align:center}.horizon-card{position:relative;z-index:2;max-width:540px;padding:3rem 2rem}.horizon-eyebrow{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--slate);letter-spacing:.3em;text-transform:uppercase;margin-bottom:1.25rem}.horizon-title{font-size:clamp(2.2rem,5vw,3.5rem);font-weight:300;letter-spacing:-.03em;line-height:1.05;margin-bottom:1.25rem;background:linear-gradient(180deg,#1a1a2e,#4a4a6e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.horizon-text{color:var(--slate);font-size:.95rem;line-height:1.65;max-width:440px;margin:0 auto 2rem}.horizon-divider{width:32px;height:1px;background:var(--steel);margin:2rem auto}.horizon-meta{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--slate);letter-spacing:.12em;text-transform:uppercase}.horizon-meta .accent{color:var(--cyan)}.footer-info{margin-top:4rem;border-top:1px dashed var(--steel);padding-top:2rem;width:100%;max-width:600px;display:flex;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--slate);flex-wrap:wrap;gap:1rem}.footer-info span{color:var(--cyan)}body.konami-active #canvas-container{filter:hue-rotate(140deg) saturate(1.4);transition:filter 1.2s var(--ease-out)}::selection{background:#0066cc26;color:var(--line)}.reveal{opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}.reveal.in{opacity:1;transform:translateY(0)}
