[data-theme=obsidian]{--bg: #080809;--bg2: #0f0f12;--bg3: #141418;--surface: #1a1a20;--ink: #f0ede8;--ink2: rgba(240, 237, 232, .55);--ink3: rgba(240, 237, 232, .2);--ink4: rgba(240, 237, 232, .07);--accent: #e8d5b0;--accent2: #c9aa7c;--accent3: #8a7255;--glow: rgba(232, 213, 176, .3);--glow2: rgba(201, 170, 124, .2);--border: rgba(240, 237, 232, .1);--border2: rgba(240, 237, 232, .06);--tag-bg: rgba(232, 213, 176, .1);--tag-fg: rgba(232, 213, 176, .7);--nav-bg: rgba(8, 8, 9, .9);--cursor-blend: screen}[data-theme=rose]{--bg: #faf5f2;--bg2: #f3ebe6;--bg3: #ede0d8;--surface: #ffffff;--ink: #1e1008;--ink2: rgba(30, 16, 8, .55);--ink3: rgba(30, 16, 8, .28);--ink4: rgba(30, 16, 8, .07);--accent: #b8614e;--accent2: #8c4538;--accent3: #e8a090;--glow: rgba(184, 97, 78, .3);--glow2: rgba(140, 69, 56, .2);--border: rgba(30, 16, 8, .12);--border2: rgba(30, 16, 8, .06);--tag-bg: rgba(184, 97, 78, .1);--tag-fg: rgba(140, 69, 56, .8);--nav-bg: rgba(250, 245, 242, .92);--cursor-blend: multiply}[data-theme=teal]{--bg: #05090d;--bg2: #091218;--bg3: #0d1a24;--surface: #112130;--ink: #c8e8f0;--ink2: rgba(200, 232, 240, .52);--ink3: rgba(200, 232, 240, .22);--ink4: rgba(200, 232, 240, .07);--accent: #38d4c4;--accent2: #1fa898;--accent3: #80ffe8;--glow: rgba(56, 212, 196, .35);--glow2: rgba(31, 168, 152, .2);--border: rgba(200, 232, 240, .1);--border2: rgba(200, 232, 240, .05);--tag-bg: rgba(56, 212, 196, .1);--tag-fg: rgba(56, 212, 196, .75);--nav-bg: rgba(5, 9, 13, .9);--cursor-blend: screen}html[data-theme]{--paper: var(--bg);--mist: var(--bg2);--sage: var(--accent);--clay: var(--accent3);--dusk: var(--accent2);--night: var(--bg3);--line: var(--border)}html{transition:background-color .7s ease,color .7s ease}#theme-sw{position:fixed;bottom:36px;right:36px;z-index:600;display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:50px;padding:8px 14px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 32px #00000040;transition:background .5s ease,border-color .5s ease,box-shadow .5s ease}#theme-sw span{font-family:DM Mono,JetBrains Mono,monospace;font-size:.6rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink2);transition:color .5s ease}.tbtn{width:24px;height:24px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;padding:0;transition:transform .25s ease,border-color .25s ease,box-shadow .3s ease;position:relative;overflow:hidden;background:transparent}.tbtn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%}.tbtn:hover{transform:scale(1.2)}.tbtn.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow);transform:scale(1.15)}.tbtn[data-t=obsidian]:before{background:conic-gradient(#080809 50%,#e8d5b0 50%)}.tbtn[data-t=rose]:before{background:conic-gradient(#faf5f2 50%,#b8614e 50%)}.tbtn[data-t=teal]:before{background:conic-gradient(#05090d 50%,#38d4c4 50%)}@media (max-width: 768px){#theme-sw{right:16px;bottom:16px;padding:6px 10px;gap:8px}}body{margin:0;background:var(--bg);color:var(--ink)}.portfolio-editorial{font-family:DM Sans,system-ui,sans-serif;background:var(--bg);color:var(--ink);overflow-x:hidden;transition:background .7s ease,color .7s ease}.portfolio-editorial .container{max-width:1160px;margin:0 auto;padding:0 40px}@media (max-width: 768px){.portfolio-editorial .container{padding:0 24px}}.portfolio-editorial #cursor{position:fixed;top:0;left:0;z-index:9999;width:10px;height:10px;background:var(--accent);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transition:transform .15s ease,width .3s ease,height .3s ease,background .5s ease;mix-blend-mode:var(--cursor-blend)}.portfolio-editorial #cursor-ring{position:fixed;top:0;left:0;z-index:9998;width:36px;height:36px;border:1.5px solid var(--accent);opacity:.45;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);transition:transform .4s cubic-bezier(.23,1,.32,1),width .3s ease,height .3s ease,border-color .5s ease}@media (pointer: fine){.portfolio-editorial.custom-cursor-active,.portfolio-editorial.custom-cursor-active *{cursor:none!important}}.portfolio-editorial.cursor-hover #cursor{width:18px;height:18px}.portfolio-editorial.cursor-hover #cursor-ring{width:56px;height:56px;opacity:.85;border-color:var(--accent)}.portfolio-editorial nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:28px 0;transition:background .4s,padding .4s,box-shadow .4s}.portfolio-editorial nav.scrolled{background:var(--nav-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:18px 0;box-shadow:0 1px 0 var(--border)}.portfolio-editorial nav .inner{display:flex;align-items:center;justify-content:space-between}.portfolio-editorial .logo{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;color:var(--ink);text-decoration:none}.portfolio-editorial .logo span{color:var(--sage)}.portfolio-editorial nav ul.nav-desktop{list-style:none;display:none;gap:40px;align-items:center}@media (min-width: 768px){.portfolio-editorial nav ul.nav-desktop{display:flex}}.portfolio-editorial .nav-mobile-btn{display:block;background:none;border:none;padding:4px}@media (min-width: 768px){.portfolio-editorial .nav-mobile-btn{display:none}}.portfolio-editorial .nav-mobile-menu{margin-top:24px;padding-top:24px;border-top:1px solid var(--line);list-style:none;display:flex;flex-direction:column;gap:16px}@media (min-width: 768px){.portfolio-editorial .nav-mobile-menu{display:none!important}}.portfolio-editorial nav a{font-size:.85rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);text-decoration:none;opacity:.6;transition:opacity .2s;position:relative}.portfolio-editorial nav a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--sage);transition:width .3s ease}.portfolio-editorial nav a:hover{opacity:1}.portfolio-editorial nav a:hover:after{width:100%}.portfolio-editorial .nav-cta{padding:10px 24px;border:1.5px solid var(--ink);border-radius:40px;font-size:.8rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)!important;opacity:1!important;transition:background .25s,color .25s!important}.portfolio-editorial .nav-cta:after{display:none!important}.portfolio-editorial .nav-cta:hover{background:var(--accent);color:var(--bg)!important;border-color:var(--accent)}.portfolio-editorial #hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding-top:100px}.portfolio-editorial .hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(ellipse 60% 70% at 70% 40%,var(--glow) 0%,transparent 60%),radial-gradient(ellipse 40% 50% at 20% 80%,var(--glow2) 0%,transparent 55%),radial-gradient(ellipse 80% 80% at 50% 0%,var(--tag-bg) 0%,transparent 60%);transition:background .7s ease}.portfolio-editorial .hero-grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.portfolio-editorial .hero-content{position:relative;z-index:2;max-width:800px}.portfolio-editorial .hero-eyebrow{font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-bottom:24px;display:flex;align-items:center;gap:12px;animation:ed-fade-up .8s .2s forwards;opacity:0}.portfolio-editorial .hero-eyebrow:before{content:"";display:block;width:32px;height:1px;background:var(--sage)}.portfolio-editorial .hero-content h1{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(3.5rem,8vw,7rem);font-weight:300;line-height:1;letter-spacing:-.03em;color:var(--ink);animation:ed-fade-up .9s .35s forwards;opacity:0}.portfolio-editorial .hero-content h1 em{font-style:italic;color:var(--sage)}.portfolio-editorial .hero-sub{margin-top:32px;max-width:520px;font-size:1.05rem;line-height:1.75;color:var(--ink2);animation:ed-fade-up .8s .55s forwards;opacity:0}.portfolio-editorial .hero-actions{margin-top:48px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;animation:ed-fade-up .8s .7s forwards;opacity:0}.portfolio-editorial .btn-primary{padding:16px 40px;background:var(--accent);color:var(--bg);border:none;border-radius:40px;font-size:.85rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:background .25s,transform .2s,color .25s;display:inline-block}.portfolio-editorial .btn-primary:hover{background:var(--accent2);transform:translateY(-2px)}.portfolio-editorial .btn-ghost{padding:16px 40px;color:var(--ink);border:1.5px solid var(--border);border-radius:40px;font-size:.85rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:border-color .25s,transform .2s;display:inline-block}.portfolio-editorial .btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}.portfolio-editorial .hero-scroll{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2;text-decoration:none;animation:ed-fade-in 1s 1.2s forwards;opacity:0}@keyframes ed-fade-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes ed-fade-in{0%{opacity:0}to{opacity:1}}.portfolio-editorial .scroll-text{font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink3)}.portfolio-editorial .scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--ink3),transparent);animation:ed-scroll-pulse 2s ease-in-out infinite}@keyframes ed-scroll-pulse{0%,to{opacity:1;transform:scaleY(1);transform-origin:top}50%{opacity:.4;transform:scaleY(.6);transform-origin:top}}.portfolio-editorial section{padding:120px 0}.portfolio-editorial .section-label{font-family:DM Mono,monospace;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:16px;display:flex;align-items:center;gap:12px}.portfolio-editorial .section-label:before{content:"";display:block;width:24px;height:1px;background:var(--sage)}.portfolio-editorial .section-title{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.4rem,5vw,4rem);font-weight:300;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}.portfolio-editorial .section-title em{font-style:italic;color:var(--dusk)}.portfolio-editorial .divider{height:1px;background:var(--line);margin:0 40px}.portfolio-editorial #about{background:var(--bg)}.portfolio-editorial .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-top:64px}.portfolio-editorial .about-text p{font-size:1.05rem;line-height:1.85;color:var(--ink2);margin-bottom:20px}.portfolio-editorial .about-text p strong{color:var(--ink);font-weight:500}.portfolio-editorial .services-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}.portfolio-editorial .service-card{background:var(--bg);padding:32px 28px;transition:background .25s;border:none;text-align:left;width:100%;cursor:pointer}.portfolio-editorial .service-card:hover{background:var(--bg2)}.portfolio-editorial .service-icon{width:40px;height:40px;margin-bottom:16px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.portfolio-editorial .service-card h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.25rem;font-weight:600;margin-bottom:8px;color:var(--ink)}.portfolio-editorial .service-card p{font-size:.88rem;line-height:1.6;color:var(--ink2)}.portfolio-editorial #tech{background:var(--bg2);color:var(--ink)}.portfolio-editorial #tech .section-label{color:var(--accent)}.portfolio-editorial #tech .section-title{color:var(--ink)}.portfolio-editorial #tech .section-title em{color:var(--accent3)}.portfolio-editorial .tech-track-wrap{margin-top:56px;overflow:hidden;position:relative;-webkit-mask:linear-gradient(90deg,transparent,white 12%,white 88%,transparent);mask:linear-gradient(90deg,transparent,white 12%,white 88%,transparent)}.portfolio-editorial .tech-track{display:flex;gap:20px;width:-moz-max-content;width:max-content;animation:ed-marquee 28s linear infinite}.portfolio-editorial .tech-track:hover{animation-play-state:paused}.portfolio-editorial .tech-pill{display:flex;align-items:center;gap:12px;padding:14px 24px;background:var(--surface);border:1px solid var(--border);border-radius:40px;white-space:nowrap}.portfolio-editorial .tech-pill img{width:28px;height:28px;border-radius:6px;-o-object-fit:contain;object-fit:contain;background:var(--ink4);padding:4px}.portfolio-editorial .tech-pill span{font-size:.85rem;color:var(--ink2)}.portfolio-editorial .tech-track-2{animation-direction:reverse;margin-top:16px}@keyframes ed-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.portfolio-editorial #work{background:var(--bg)}.portfolio-editorial .projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:56px}.portfolio-editorial .project-card{border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;background:var(--bg)}.portfolio-editorial .project-card:hover{transform:translateY(-6px);box-shadow:0 24px 64px #0000001f}.portfolio-editorial .project-card:first-child{grid-column:1 / -1}.portfolio-editorial .project-img{width:100%;aspect-ratio:16/7;overflow:hidden;background:var(--bg2)}.portfolio-editorial .project-card:first-child .project-img{aspect-ratio:16/6}.portfolio-editorial .project-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.portfolio-editorial .project-card:hover .project-img img{transform:scale(1.04)}.portfolio-editorial .project-body{padding:28px 32px}.portfolio-editorial .project-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.portfolio-editorial .tag{padding:4px 12px;border-radius:20px;font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;background:var(--bg2);color:var(--ink2)}.portfolio-editorial .project-body h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.6rem;font-weight:600;color:var(--ink);margin-bottom:10px}.portfolio-editorial .project-body p{font-size:.9rem;line-height:1.7;color:var(--ink2)}.portfolio-editorial .project-links{display:flex;gap:16px;margin-top:22px;flex-wrap:wrap}.portfolio-editorial .project-link{font-size:.8rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:6px;opacity:.6;transition:opacity .2s}.portfolio-editorial .project-link:hover{opacity:1}.portfolio-editorial .project-link svg{width:14px;height:14px}.portfolio-editorial #experience{background:var(--bg2)}.portfolio-editorial .timeline{margin-top:64px}.portfolio-editorial .timeline-year{font-family:DM Mono,monospace;font-size:.75rem;letter-spacing:.12em;color:var(--ink3);text-transform:uppercase;margin-bottom:8px}.portfolio-editorial .timeline-company{display:flex;align-items:center;gap:10px}.portfolio-editorial .company-logo{width:36px;height:36px;border-radius:8px;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.portfolio-editorial .company-logo img{width:70%;height:70%;-o-object-fit:contain;object-fit:contain}.portfolio-editorial .company-name{font-size:.85rem;font-weight:500;color:var(--ink)}.portfolio-editorial .timeline-content h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:12px}.portfolio-editorial .timeline-content p{font-size:.9rem;line-height:1.75;color:var(--ink2);margin-bottom:8px}.portfolio-editorial .timeline-skills{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.portfolio-editorial .experience-hint{margin-top:12px;font-size:.9rem;color:var(--ink3);max-width:520px}.portfolio-editorial .timeline-item--clickable{width:100%;text-align:left;background:transparent;border:none;border-top:1px solid var(--line);cursor:pointer;transition:background .25s ease;font:inherit;color:inherit;display:grid;grid-template-columns:200px 1fr;gap:48px;padding:48px 0;position:relative}.portfolio-editorial .timeline-item--clickable:last-child{border-bottom:1px solid var(--line)}.portfolio-editorial .timeline-item--clickable:hover{background:var(--tag-bg)}.portfolio-editorial .timeline-item--clickable:focus-visible{outline:2px solid var(--sage);outline-offset:4px}.portfolio-editorial .timeline-preview{font-size:.9rem;line-height:1.75;color:var(--ink2);margin-bottom:12px}.portfolio-editorial .timeline-cta{font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage)}.portfolio-editorial .experience-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:24px}.portfolio-editorial .experience-modal{background:var(--surface);border-radius:16px;padding:32px;max-width:560px;width:100%;border:1px solid var(--line);max-height:85vh;overflow-y:auto}.portfolio-editorial .experience-modal-header{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}.portfolio-editorial .experience-modal-header .company-logo{width:48px;height:48px}.portfolio-editorial .experience-modal-date{font-family:DM Mono,monospace;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px}.portfolio-editorial .experience-modal-header h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:4px}.portfolio-editorial .experience-modal-company{font-size:.9rem;font-weight:500;color:var(--dusk)}.portfolio-editorial .experience-modal-label{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:12px}.portfolio-editorial .experience-modal-list{list-style:none;padding:0;margin:0 0 24px}.portfolio-editorial .experience-modal-list li{font-size:.92rem;line-height:1.75;color:var(--ink2);border-bottom:1px solid var(--line);padding:12px 0 12px 18px;position:relative}.portfolio-editorial .experience-modal-list li:before{content:"";position:absolute;left:0;top:1.15em;width:6px;height:6px;border-radius:50%;background:var(--sage)}.portfolio-editorial .experience-modal-list li:last-child{border-bottom:none}.portfolio-editorial #contact{background:var(--bg3);color:var(--ink);position:relative;overflow:hidden}.portfolio-editorial .contact-glow{position:absolute;top:-200px;left:50%;transform:translate(-50%);width:600px;height:600px;background:radial-gradient(circle,var(--glow) 0%,transparent 65%);pointer-events:none}.portfolio-editorial #contact .section-label{color:var(--sage);justify-content:center}.portfolio-editorial #contact .section-label:before{display:none}.portfolio-editorial #contact .section-title{color:var(--ink)}.portfolio-editorial .contact-inner{max-width:640px;margin:0 auto;text-align:center}.portfolio-editorial .contact-desc{margin-top:24px;font-size:1.05rem;line-height:1.75;color:var(--ink2)}.portfolio-editorial .contact-links-row{margin-top:28px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.portfolio-editorial .contact-chip{padding:10px 18px;border:1px solid var(--border);border-radius:40px;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2);text-decoration:none;transition:border-color .2s,color .2s}.portfolio-editorial .contact-chip:hover{border-color:var(--accent);color:var(--ink)}.portfolio-editorial .contact-form{margin-top:48px;display:flex;flex-direction:column;gap:16px}.portfolio-editorial .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.portfolio-editorial .form-group{display:flex;flex-direction:column;gap:8px;text-align:left}.portfolio-editorial .form-group label{font-family:DM Mono,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}.portfolio-editorial .form-group input,.portfolio-editorial .form-group textarea{background:var(--ink4);border:1px solid var(--border);border-radius:10px;padding:14px 18px;font-family:DM Sans,sans-serif;font-size:.9rem;color:var(--ink);outline:none;transition:border-color .25s,background .25s}.portfolio-editorial .form-group input:focus,.portfolio-editorial .form-group textarea:focus{border-color:var(--accent);background:var(--tag-bg)}.portfolio-editorial .form-group textarea{resize:vertical;min-height:120px}.portfolio-editorial .form-submit{padding:18px 48px;background:var(--accent);color:var(--bg);border:none;border-radius:40px;font-size:.9rem;font-weight:500;letter-spacing:.04em;transition:background .25s,transform .2s;align-self:center;cursor:pointer}.portfolio-editorial .form-submit:hover{background:var(--accent2);transform:translateY(-2px)}.portfolio-editorial footer{background:var(--bg2);color:var(--ink);padding:48px 0}.portfolio-editorial .footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px}.portfolio-editorial .footer-logo{font-family:Cormorant Garamond,Georgia,serif;font-size:1.3rem;font-weight:600;color:var(--ink);text-decoration:none}.portfolio-editorial .footer-logo span{color:var(--sage)}.portfolio-editorial .footer-copy{font-size:.78rem;color:var(--ink3)}.portfolio-editorial .footer-socials{display:flex;gap:24px;flex-wrap:wrap}.portfolio-editorial .footer-socials a{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);text-decoration:none;transition:color .2s}.portfolio-editorial .footer-socials a:hover{color:var(--sage)}.portfolio-editorial .reveal{opacity:0;transform:translateY(32px);transition:opacity .75s ease,transform .75s ease}.portfolio-editorial .reveal.visible{opacity:1;transform:translateY(0)}.portfolio-editorial .reveal-d1{transition-delay:.1s}.portfolio-editorial .reveal-d2{transition-delay:.2s}.portfolio-editorial .reveal-d3{transition-delay:.3s}.portfolio-editorial .skills-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:24px}.portfolio-editorial .skills-modal{background:var(--surface);border-radius:16px;padding:32px;max-width:420px;width:100%;border:1px solid var(--line);max-height:85vh;overflow-y:auto}.portfolio-editorial .skills-modal h3{font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;margin-bottom:16px}.portfolio-editorial .skills-modal ul{list-style:none;padding:0}.portfolio-editorial .skills-modal li{font-size:.9rem;line-height:1.7;color:var(--ink2);padding:8px 0;border-bottom:1px solid var(--line)}.portfolio-editorial .skills-modal li:last-child{border-bottom:none}.portfolio-editorial .skills-modal-close{margin-top:20px;padding:10px 24px;border:1.5px solid var(--ink);border-radius:40px;background:transparent;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;cursor:pointer}@media (max-width: 768px){.portfolio-editorial nav ul{display:none}.portfolio-editorial .about-grid{grid-template-columns:1fr;gap:48px}.portfolio-editorial .projects-grid{grid-template-columns:1fr}.portfolio-editorial .project-card:first-child{grid-column:1}.portfolio-editorial .timeline-item--clickable{grid-template-columns:1fr;gap:16px}.portfolio-editorial .form-row,.portfolio-editorial .services-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.portfolio-editorial .tech-track,.portfolio-editorial .scroll-line{animation:none}.portfolio-editorial .reveal,.portfolio-editorial .hero-eyebrow,.portfolio-editorial .hero-content h1,.portfolio-editorial .hero-sub,.portfolio-editorial .hero-actions,.portfolio-editorial .hero-scroll{opacity:1;transform:none;animation:none}}
