@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Arial,sans-serif;color:#f7f7f7;background:#090909;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;min-width:320px}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}::selection{background:#fff;color:#000}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5%;position:sticky;top:0;z-index:50;background:#0a0a0aef;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-bottom:1px solid #252525}.logo{font-family:Space Grotesk,sans-serif;font-size:28px;font-weight:700;letter-spacing:-2px}.logo-dot,.period{color:#a9a9a9}.navlinks,.nav-right,.lang-switch{display:flex;align-items:center;gap:26px}.navlinks a{font-size:12px;text-transform:uppercase;letter-spacing:1.1px;color:#bcbcbc;transition:color .2s}.navlinks a:hover{color:#fff}.nav-right{gap:16px}.lang-switch{gap:2px;padding:4px;border:1px solid #353535;border-radius:8px}.lang-switch button{border:0;background:transparent;color:#777;padding:6px 8px;border-radius:5px;font-size:11px;font-weight:700}.lang-switch button.active{background:#f5f5f5;color:#0a0a0a}.mobile-menu{display:none;background:none;border:0;color:#fff}.hero{position:relative;min-height:min(810px,calc(100svh - 76px));display:flex;align-items:center;overflow:hidden;padding:105px 8%}.hero-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:60px 60px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 55%,#000);mask-image:linear-gradient(90deg,transparent,#000 55%,#000)}.hero-content{z-index:2;position:relative;max-width:1000px}.eyebrow,.section-label,.hero-small,.hero-bottom,.skill-head,.project-meta{font-size:11px;letter-spacing:2.3px;font-weight:700}.eyebrow{display:inline-flex;align-items:center;gap:12px;border:1px solid #444;padding:10px 14px;border-radius:50px;color:#ddd;margin-bottom:36px}.pulse{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 5px #ffffff18;animation:pulse 2s infinite}.hero-small{color:#aaa;margin-bottom:16px}.hero-name{font-family:Space Grotesk,sans-serif;font-size:clamp(65px,11.5vw,172px);line-height:.86;letter-spacing:-.085em;margin:0 0 28px;font-weight:700;animation:rise .8s both}.hero-name>span:not(.period){-webkit-text-stroke:1.5px #eee;color:transparent}.hero-roles{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-family:Space Grotesk;font-size:clamp(17px,2.2vw,29px);font-weight:500}.slash{color:#666}.hero-description{max-width:560px;font-size:16px;line-height:1.8;color:#a8a8a8;margin:22px 0 30px}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{border:1px solid #777;display:inline-flex;align-items:center;justify-content:center;gap:14px;padding:15px 21px;font-size:12px;letter-spacing:.5px;font-weight:700;transition:transform .25s,background .25s,color .25s;border-radius:3px}.btn:hover{transform:translateY(-3px)}.btn-white{background:#f4f4f4;color:#0a0a0a;border-color:#f4f4f4}.btn-white:hover{background:#ccc}.btn-outline{background:transparent;color:#fff}.btn-outline:hover{background:#fff;color:#111}.hero-bottom{position:absolute;bottom:34px;left:8%;right:8%;display:flex;justify-content:space-between;color:#777;z-index:2}.hero-bottom a{display:flex;gap:10px;align-items:center}.hero-orbit{position:absolute;right:-110px;top:22%;width:420px;height:420px;border:1px solid #ffffff1c;border-radius:50%;display:grid;place-items:center;animation:orbit 35s linear infinite}.hero-orbit:before{content:"";position:absolute;top:45px;right:45px;bottom:45px;left:45px;border:1px dashed #ffffff28;border-radius:50%}.hero-orbit span{font-size:170px;color:#ffffff07;font-weight:700}.ticker{overflow:hidden;border-block:1px solid #333;background:#f2f2f2;color:#101010;padding:15px 0;white-space:nowrap}.ticker-track{display:flex;width:max-content;animation:marquee 34s linear infinite}.ticker-track>span{font-family:Space Grotesk;font-size:16px;letter-spacing:3px;font-weight:700;padding-right:24px}.ticker b{padding:0 16px;color:#777}.section{padding:115px 8%;border-bottom:1px solid #252525;scroll-margin-top:70px}.section-label{color:#999;margin-bottom:36px}.display-heading{font-family:Space Grotesk;font-size:clamp(42px,6vw,90px);line-height:1;letter-spacing:-.065em;margin:0 0 55px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}.large-text{font-size:clamp(17px,2vw,23px);line-height:1.65;color:silver;margin:0 0 35px}.about-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.about-cards article{border:1px solid #333;padding:26px 20px;background:#111;transition:transform .3s,border-color .3s}.about-cards article:hover{transform:translateY(-6px);border-color:#aaa}.about-cards h3{font-size:13px;letter-spacing:1px;margin:20px 0 10px}.about-cards p{font-size:13px;line-height:1.7;color:#888;margin:0}.skills-section{background:#101010}.skill-head{display:flex;justify-content:space-between;margin:38px 0 18px;color:#999}.skill-grid{display:flex;gap:12px;flex-wrap:wrap}.skill{padding:18px 23px;background:#191919;border:1px solid #393939;font-size:16px;font-family:Space Grotesk;transition:background .3s,transform .3s,color .3s;animation:float 4s ease-in-out infinite}.skill:hover{background:#fff;color:#000;transform:translateY(-8px) scale(1.03);animation-play-state:paused}.skill-spark{font-size:12px;color:#777;margin-right:12px}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card{min-width:0}.project-art{height:310px;background:linear-gradient(135deg,#202020,#090909);border:1px solid #333;display:grid;place-items:center;position:relative;overflow:hidden}.project-card:hover .browser-art{transform:rotate(-4deg) translateY(-9px)}.browser-art{width:68%;height:200px;background:#ececec;border-radius:9px 9px 0 0;transform:rotate(-7deg) translateY(18px);transition:transform .5s;box-shadow:0 20px 50px #000a}.browser-top{display:flex;gap:6px;padding:12px;border-bottom:1px solid #ccc}.browser-top i{width:7px;height:7px;background:#999;border-radius:50%}.browser-title{font-family:Space Grotesk;font-size:54px;color:#111;font-weight:700;letter-spacing:-5px;padding:15px 24px 0}.browser-lines{padding:0 24px}.browser-lines span{display:block;height:7px;background:#bbb;width:80%;margin:10px 0}.browser-lines span:nth-child(2){width:60%}.browser-lines span:nth-child(3){width:40%}.project-number{position:absolute;right:20px;top:20px;font-size:12px;color:#888}.art-two{background:radial-gradient(circle at center,#2c2c2c,#0c0c0c)}.flow-art{display:flex;align-items:center;gap:9px}.flow-art span{border:1px solid #777;padding:19px;border-radius:16px;background:#181818;animation:float 4s ease-in-out infinite}.flow-art span:nth-of-type(2){animation-delay:.4s}.flow-art span:nth-of-type(3){animation-delay:.8s}.flow-art i{height:1px;width:34px;background:#aaa}.art-custom{background:#171717}.big-glyph{font-size:120px;color:#aaa}.project-meta{display:flex;justify-content:space-between;color:#888;margin:24px 0 10px;font-size:10px}.project-card h3{font-family:Space Grotesk;font-size:25px;margin:0 0 10px}.project-card p{color:#999;line-height:1.7;font-size:14px;max-width:460px}.project-link,.inline-link{display:inline-flex;gap:8px;align-items:center;text-decoration:underline;text-underline-offset:4px}.contact-section{background:#111}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.contact-links{display:flex;flex-direction:column;gap:20px;margin-top:45px}.contact-links a,.contact-links>div{display:flex;align-items:center;gap:13px;font-size:14px;overflow-wrap:anywhere}.contact-links a:hover{color:#aaa}.contact-links a svg:last-child{margin-left:auto;flex-shrink:0}.contact-form,.auth-card form,.panel-card form,.admin-add{display:flex;flex-direction:column;gap:22px}.contact-form label,.auth-card label,.panel-card label,.admin-add label{display:flex;flex-direction:column;gap:10px;color:#aaa;font-size:12px;letter-spacing:1px}.contact-form input,.contact-form textarea,.auth-card input,.panel-card input,.admin-add input,.admin-add textarea,.chat-form input{background:#171717;color:#fff;border:1px solid #444;padding:16px;outline:none;width:100%;border-radius:2px}.contact-form input:focus,.contact-form textarea:focus,.auth-card input:focus,.panel-card input:focus,.admin-add input:focus,.admin-add textarea:focus{border-color:#eee}.contact-form textarea,.admin-add textarea{resize:vertical}.contact-form .btn{align-self:flex-start}.muted{color:#888;font-size:12px}.form-status,.success{color:#c6efc6}.error{color:#faa;overflow-wrap:anywhere}.auth-page{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 145px)}.auth-side{padding:12% 10%;background:#171717;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.auth-side h1{font-family:Space Grotesk;font-size:clamp(55px,7vw,115px);letter-spacing:-.08em;line-height:.9}.auth-side h1 span{-webkit-text-stroke:1px white;color:transparent}.auth-side p{color:#888;letter-spacing:3px;font-size:11px}.auth-card{padding:12%;align-self:center;width:100%;max-width:650px}.auth-card h2,.panel-head h1{font-family:Space Grotesk;font-size:clamp(36px,4vw,65px);letter-spacing:-.06em}.auth-switch{margin-top:25px;color:#999}.auth-switch a{color:#fff;text-decoration:underline}.panel-page,.admin-page{min-height:calc(100vh - 150px);padding:85px 8%;max-width:1250px;margin:auto}.panel-head p{color:#aaa}.panel-card{max-width:650px;padding:35px;border:1px solid #333;background:#151515;margin:35px 0}.panel-card-head{display:flex;align-items:center;gap:14px}.panel-card-head h2{font-size:21px}.panel-actions{display:flex;gap:12px;flex-wrap:wrap}.admin-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-heading h1{font-family:Space Grotesk;font-size:clamp(44px,6vw,80px);letter-spacing:-.07em}.admin-heading h1 span{color:#777}.admin-tabs{display:flex;gap:8px;overflow:auto;padding:15px 0;border-bottom:1px solid #333;margin-bottom:30px}.admin-tabs button{display:flex;align-items:center;gap:8px;white-space:nowrap;background:#171717;color:#aaa;border:1px solid #333;padding:13px 18px}.admin-tabs button.selected{background:#eee;color:#111}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.admin-stats>div{padding:30px;border:1px solid #333;display:flex;flex-direction:column;gap:18px}.admin-stats strong{font-size:48px;font-family:Space Grotesk}.admin-stats span{color:#999}.admin-list{max-width:900px}.admin-list h2{font-size:26px;margin:25px 0}.admin-list article{border:1px solid #333;padding:24px;margin:12px 0;background:#131313;overflow-wrap:anywhere}.admin-list article p{line-height:1.6;color:#bbb}.admin-list article a{font-size:13px;color:#ddd}.list-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.list-top time{font-size:12px;color:#777}.message-body{white-space:pre-wrap}.admin-add{padding:24px;border:1px solid #333;margin:24px 0}.admin-add .btn{align-self:flex-start}.icon-button{border:0;background:transparent;color:#aaa;padding:6px}.chat-widget{position:fixed;bottom:22px;right:22px;z-index:60}.chat-toggle{display:flex;align-items:center;gap:10px;background:#f6f6f6;color:#111;border:0;padding:16px 20px;box-shadow:0 10px 40px #0008;font-size:12px;font-weight:700}.chat-panel{position:absolute;bottom:65px;right:0;width:min(370px,calc(100vw - 30px));height:470px;max-height:70vh;display:flex;flex-direction:column;background:#151515;border:1px solid #444;box-shadow:0 20px 70px #000b}.chat-header{padding:16px;display:flex;gap:12px;align-items:center;border-bottom:1px solid #333}.chat-header div{display:flex;flex:1;flex-direction:column;gap:3px}.chat-header small{color:#888}.chat-messages{padding:16px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:12px}.chat-intro,.chat-notice{font-size:13px;color:#aaa;line-height:1.6}.chat-notice{border:1px solid #555;padding:13px}.bubble{font-size:13px;line-height:1.6;padding:12px;max-width:88%;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.user{background:#eee;color:#111;align-self:flex-end}.bubble.assistant{background:#2c2c2c;align-self:flex-start}.chat-form{display:flex;border-top:1px solid #333;padding:10px;gap:8px}.chat-form input{padding:12px;flex:1;min-width:0}.chat-form button{background:#fff;color:#000;border:0;padding:0 14px}.chat-form button:disabled{opacity:.35}footer{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:35px 8%;font-size:12px;color:#777;flex-wrap:wrap}.reveal{opacity:0;transform:translateY(35px);transition:opacity .75s,transform .75s}.reveal.visible{opacity:1;transform:none}@keyframes marquee{to{transform:translate(-50%)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse{50%{box-shadow:0 0 0 10px #fff0}}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes rise{0%{opacity:0;transform:translateY(35px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1050px){.nav{padding:0 4%}.navlinks{gap:15px}.navlinks a{font-size:11px}.hero-orbit{opacity:.4}.section{padding:85px 6%}.hero{padding-left:6%;padding-right:6%}}@media(max-width:760px){.nav{height:68px}.mobile-menu{display:block}.navlinks{display:none;position:absolute;top:68px;left:0;right:0;background:#111;padding:25px;flex-direction:column;align-items:stretch;border-bottom:1px solid #444}.navlinks.open{display:flex}.navlinks a{font-size:14px;padding:10px}.hero{min-height:700px;padding:95px 6% 115px}.hero-name{font-size:clamp(55px,12vw,100px)}.hero-orbit{right:-220px}.hero-bottom{left:6%;right:6%;font-size:9px}.about-grid,.contact-grid,.auth-page{grid-template-columns:1fr}.about-cards{margin-top:30px}.projects-grid{grid-template-columns:1fr}.auth-side{display:none}.auth-card{padding:80px 8%}.admin-stats{grid-template-columns:1fr}.admin-heading{align-items:flex-start;flex-direction:column}.chat-widget{bottom:12px;right:12px}.section{padding:70px 6%}.display-heading{margin-bottom:32px}}@media(max-width:440px){.lang-switch button{padding:5px}.hero-name{font-size:clamp(48px,12vw,66px)}.hero-roles{gap:8px;font-size:16px}.hero-description{font-size:14px}.about-cards{grid-template-columns:1fr}.skill{font-size:13px;padding:14px}.project-art{height:240px}.flow-art span{padding:12px}.flow-art i{width:18px}.contact-links a{font-size:12px}.chat-toggle span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.hero-content{max-width:900px}.hero-portrait{position:absolute;right:5%;top:17%;width:clamp(210px,29vw,430px);aspect-ratio:4/5;z-index:1;border:1px solid #ffffff55;border-radius:48% 48% 12px 12px;overflow:visible;filter:drop-shadow(0 25px 70px #000);animation:portrait-enter 1.1s ease-out both}.hero-portrait img,.hero-portrait-placeholder{display:block;width:100%;height:100%;object-fit:cover;object-position:center 28%;border-radius:inherit;filter:grayscale(1) contrast(1.08)}.hero-portrait-placeholder{background:linear-gradient(135deg,#333,#101010);display:grid;place-items:center;font-family:Space Grotesk,sans-serif;font-size:clamp(70px,11vw,160px);font-weight:700;color:#555}.portrait-ring{position:absolute;top:-16px;right:-16px;bottom:-16px;left:-16px;border:1px dashed #ffffff45;border-radius:inherit;pointer-events:none;animation:portrait-pulse 5s ease-in-out infinite}.hero-portrait:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 65px #0009;pointer-events:none}.hero-name{position:relative;z-index:2;text-shadow:0 3px 18px #0008}.admin-photo-editor{margin:28px 0;padding:28px;border:1px solid #444;background:#151515;max-width:760px}.admin-photo-editor input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.admin-photo-editor input[type=file]:focus-visible+.photo-upload-button{outline:2px solid white;outline-offset:4px}.photo-upload-button{margin-top:12px;cursor:pointer}.admin-photo-preview{display:block;width:140px;height:170px;object-fit:cover;filter:grayscale(1);margin:18px 0;border:1px solid #666}@keyframes portrait-enter{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:none}}@keyframes portrait-pulse{50%{transform:scale(1.04);opacity:.4}}@media(max-width:1050px){.hero-portrait{right:1%;opacity:.42}.hero-content{max-width:100%}}@media(max-width:760px){.hero-portrait{width:190px;right:-30px;top:11%;opacity:.25}.hero-name{z-index:3}.hero{isolation:isolate}}@media(prefers-reduced-motion:reduce){.hero-portrait,.portrait-ring{animation:none}}
