/*
  raymondpalacios.tech — sistema visual principal
  Índice: 01 tokens · 02 reset/a11y · 03 layout/nav · 04 hero/3D · 05 sections
          06 projects/forms/dialog · 07 motion · 08 responsive · 09 accessibility.
  Dependencias: ninguna. Tipografía: stack de sistema.
*/
:root{--bg:#050607;--elev:#0b0e11;--surface:rgba(255,255,255,.055);--surface2:rgba(255,255,255,.085);--text:#f5f7f8;--muted:#9aa3ac;--dim:#68727c;--accent:#73e7ff;--accent2:#a7ffce;--border:rgba(255,255,255,.11);--border2:rgba(255,255,255,.17);--danger:#ff9a9a;--ok:#a7ffce;--radius:24px;--shell:min(1440px,calc(100vw - 48px));--header:76px;--ease:cubic-bezier(.22,1,.36,1);--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,"Helvetica Neue",Arial,sans-serif}
*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}body{margin:0;min-width:320px;overflow-x:hidden;background:radial-gradient(circle at 82% 8%,rgba(115,231,255,.055),transparent 30%),var(--bg);color:var(--text)}body.nav-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{color:inherit}img,svg,canvas{display:block;max-width:100%}::selection{background:var(--accent);color:#041014}.shell{width:var(--shell);margin-inline:auto}.section{scroll-margin-top:calc(var(--header) + 18px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:5000;top:10px;left:10px;transform:translateY(-140%);padding:11px 15px;border-radius:10px;background:#fff;color:#050607;font-weight:800;transition:transform .18s ease}.skip-link:focus{transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
/* navigation */.site-header{position:fixed;inset:0 0 auto;z-index:1000;height:var(--header);border-bottom:1px solid transparent;transition:.22s ease}.site-header.scrolled{background:rgba(5,6,7,.76);border-color:var(--border);backdrop-filter:blur(18px) saturate(140%)}.nav-shell{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;font-weight:760;letter-spacing:-.02em}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--border2);border-radius:10px;background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.02));color:var(--accent);font-size:11px}.brand-name{font-size:15px}.site-nav{display:flex;align-items:center;gap:clamp(14px,2vw,29px)}.site-nav>a{color:var(--muted);font-size:13px;font-weight:690;transition:color .18s ease}.site-nav>a:hover,.site-nav>a:focus-visible{color:var(--text)}.nav-actions{display:flex;gap:8px}.lang-toggle,.nav-resume{min-height:42px;display:grid;place-items:center;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.025);font-size:12px;font-weight:800}.lang-toggle{cursor:pointer}.lang-toggle:hover{background:rgba(115,231,255,.07);border-color:rgba(115,231,255,.35)}.menu-toggle{display:none;width:46px;height:46px;border:1px solid var(--border);border-radius:50%;background:rgba(255,255,255,.03);cursor:pointer}.menu-toggle>span:not(.sr-only){display:block;width:18px;height:1px;margin:5px auto;background:currentColor;transition:transform .2s var(--ease)}.menu-toggle[aria-expanded=true]>span:nth-of-type(2){transform:translateY(3px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:nth-of-type(3){transform:translateY(-3px) rotate(-45deg)}.is-disabled{opacity:.42;pointer-events:none}
/* hero */.hero{position:relative;min-height:100svh;display:grid;align-items:center;padding:calc(var(--header) + 58px) 0 62px;overflow:clip}.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(#000,transparent 86%)}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,7fr) minmax(350px,5fr);align-items:center;gap:clamp(42px,6vw,92px)}.eyebrow{margin:0 0 17px;color:var(--accent);font-size:11px;font-weight:850;letter-spacing:.17em}.hero-title{max-width:920px;margin:0 0 25px;font-size:clamp(3rem,5.4vw,5.5rem);line-height:1.0;letter-spacing:-.052em;font-weight:720;text-wrap:balance}.hero-lead{max-width:790px;margin:0 0 31px;color:var(--muted);font-size:clamp(18px,1.4vw,21px);line-height:1.58;letter-spacing:-.012em}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:11px}.button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 20px;border:1px solid transparent;border-radius:999px;font-size:14px;font-weight:780;cursor:pointer;transition:transform .2s var(--ease),background .18s,border-color .18s}.button:hover,.button:focus-visible{transform:translateY(-2px)}.button-primary{background:var(--text);color:#050607}.button-primary:hover{background:#fff}.button-secondary{background:rgba(255,255,255,.03);border-color:var(--border)}.text-link{min-height:44px;display:inline-flex;align-items:center;padding:0 10px;color:var(--muted);font-size:14px;font-weight:720}.text-link:hover{color:var(--accent)}.credibility{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:800px;margin:42px 0 0;padding:0}.credibility li{min-height:92px;padding:15px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:7px}.credibility strong{font-size:17px}.credibility span{color:var(--muted);font-size:11px;line-height:1.45}
.engine-stage{position:relative;min-height:520px;display:grid;place-items:center;isolation:isolate}.engine-stage:before{content:"";position:absolute;width:80%;aspect-ratio:1;border:1px solid rgba(255,255,255,.035);border-radius:50%;box-shadow:0 0 100px rgba(115,231,255,.04),inset 0 0 100px rgba(115,231,255,.025)}.engine-fallback{position:relative;width:min(410px,82vw);aspect-ratio:1;transform:rotateX(62deg) rotateZ(-12deg);transform-style:preserve-3d;transition:opacity .4s}.fallback-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(255,255,255,.22);border-radius:50%}.fallback-ring:after{content:"";position:absolute;inset:10px;border:1px dashed rgba(255,255,255,.08);border-radius:inherit}.r1{width:100%;height:100%;margin:-50%;box-shadow:0 0 34px rgba(115,231,255,.07)}.r2{width:70%;height:70%;margin:-35%;border-width:8px;border-color:rgba(255,255,255,.08)}.r3{width:42%;height:42%;margin:-21%;border-color:rgba(115,231,255,.45);box-shadow:0 0 30px rgba(115,231,255,.12)}.fallback-core{position:absolute;left:50%;top:50%;width:88px;height:88px;margin:-44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.2),transparent 18%),#0b1014;border:1px solid rgba(255,255,255,.2);box-shadow:0 0 0 12px rgba(255,255,255,.025),0 0 28px rgba(115,231,255,.1)}.fallback-core:after{content:"";position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px;border-radius:50%;background:var(--accent);box-shadow:0 0 20px var(--accent)}.fallback-node{position:absolute;width:8px;height:8px;border-radius:50%;background:#10161a;border:1px solid rgba(255,255,255,.45)}.fallback-node.n1{left:14%;top:38%}.fallback-node.n2{right:12%;top:25%}.fallback-node.n3{right:14%;bottom:27%}.engine-caption{position:absolute;bottom:19px;display:flex;gap:9px;align-items:center;color:var(--dim);font-size:9px;font-weight:850;letter-spacing:.14em}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px rgba(115,231,255,.7)}
/* common sections */.expertise-section,.work-section,.about-section,.contact-section{padding:clamp(108px,12vw,180px) 0}.expertise-section{border-top:1px solid var(--border)}.section-heading{max-width:920px;margin-bottom:66px}.section-heading h2,.about-copy h2,.contact-copy h2{margin:0 0 23px;font-size:clamp(2.55rem,4.8vw,5.7rem);line-height:.99;letter-spacing:-.055em;font-weight:710;text-wrap:balance}.section-heading>p:last-child,.contact-copy>p{max-width:730px;margin-bottom:0;color:var(--muted);font-size:clamp(17px,1.55vw,20px);line-height:1.64}.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--border);border-radius:28px;overflow:hidden;background:var(--border)}.capability{position:relative;min-height:385px;padding:clamp(28px,3vw,43px);background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 35%),var(--bg);transition:background .22s}.capability:hover{background:radial-gradient(circle at 18% 10%,rgba(115,231,255,.07),transparent 27%),var(--bg)}.capability-no{position:absolute;right:30px;top:29px;color:var(--dim);font-size:10px;letter-spacing:.16em}.capability-symbol{width:52px;height:52px;margin-bottom:84px;display:grid;place-items:center;border:1px solid var(--border);border-radius:15px;color:var(--accent);font-size:25px}.capability h3{margin:0 0 17px;font-size:clamp(22px,2vw,29px);line-height:1.08;letter-spacing:-.034em}.capability p{margin:0;color:var(--muted);font-size:15px;line-height:1.65}
/* projects */.work-section{background:radial-gradient(circle at 94% 10%,rgba(115,231,255,.05),transparent 26%),var(--elev)}.split-heading{max-width:none;display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:end}.split-heading>p{margin-left:auto}.project-list{display:grid;gap:14px}.project-card{position:relative;display:grid;grid-template-columns:145px minmax(0,1.4fr) minmax(220px,.7fr);gap:clamp(22px,4vw,52px);min-height:290px;padding:clamp(26px,3vw,41px);border:1px solid var(--border);border-radius:22px;background:rgba(255,255,255,.022);overflow:hidden;transition:transform .28s var(--ease),border-color .2s,background .2s}.project-card:hover{transform:translateY(-5px);border-color:rgba(115,231,255,.22);background:rgba(255,255,255,.035)}.project-meta{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.project-no{color:var(--dim);font-size:11px;letter-spacing:.15em}.status-chip{padding:7px 10px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.project-category{margin-bottom:18px;color:var(--accent);font-size:10px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.project-main h3{margin:0 0 14px;font-size:clamp(27px,3vw,41px);line-height:1;letter-spacing:-.045em}.project-main p{margin:0;color:var(--muted);font-size:15px;line-height:1.65}.project-side{align-self:end}.tech-list{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}.tech-list span{padding:7px 9px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:10px}.project-view{min-height:44px;width:100%;display:flex;justify-content:space-between;align-items:center;padding:0 13px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text);font-size:12px;font-weight:760;cursor:pointer}.project-view:hover{border-color:rgba(115,231,255,.38);background:rgba(115,231,255,.05)}
/* about */.about-section{background:#e9edef;color:#0c1115}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(48px,8vw,118px);align-items:center}.about-frame{position:relative;min-height:560px;display:grid;place-items:center;overflow:hidden;border-radius:32px;background:radial-gradient(circle at 62% 35%,rgba(115,231,255,.23),transparent 20%),linear-gradient(145deg,#0c1013,#151b20 55%,#090b0d);box-shadow:0 28px 90px rgba(0,0,0,.15)}.about-monogram{position:relative;z-index:2;color:#f5f7f8;font-size:clamp(78px,9vw,138px);font-weight:740;letter-spacing:-.08em}.about-axis{position:absolute;background:rgba(255,255,255,.08)}.about-axis.x{width:78%;height:1px}.about-axis.y{height:78%;width:1px}.about-ring{position:absolute;width:68%;aspect-ratio:1;border:1px solid rgba(115,231,255,.13);border-radius:50%;transform:rotateX(65deg)}.about-frame small{position:absolute;left:26px;bottom:25px;color:rgba(255,255,255,.48);font-size:8px;font-weight:850;letter-spacing:.16em}.about-copy .eyebrow{color:#167b8f}.about-copy h2{color:#0a0f12}.about-statement{max-width:730px;margin:0 0 32px;color:#48525a;font-size:clamp(18px,1.7vw,21px);line-height:1.68}.credential-chips{display:flex;flex-wrap:wrap;gap:9px}.credential-chips span{padding:9px 12px;border:1px solid rgba(12,17,21,.14);border-radius:999px;background:rgba(255,255,255,.35);color:#2d363c;font-size:11px;font-weight:740}
/* contact + forms */.contact-section{position:relative;overflow:hidden}.contact-section:before{content:"";position:absolute;left:18%;top:25%;width:520px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(115,231,255,.07),transparent 66%);filter:blur(20px);pointer-events:none}.contact-grid{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(48px,8vw,110px);align-items:start}.contact-copy{position:sticky;top:calc(var(--header) + 45px)}.public-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:27px}.public-links a{min-height:44px;display:inline-flex;align-items:center;padding:0 13px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:12px}.contact-form,.project-dialog form{display:grid;gap:17px}.contact-form{padding:clamp(25px,3.2vw,42px);border:1px solid var(--border);border-radius:25px;background:rgba(255,255,255,.025)}label{display:grid;gap:8px;color:var(--muted);font-size:12px;font-weight:690}input,textarea{width:100%;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.035);color:var(--text);padding:13px 14px;outline:none;transition:border-color .18s,background .18s}input{min-height:48px}textarea{resize:vertical;min-height:140px}input:focus,textarea:focus{border-color:rgba(115,231,255,.48);background:rgba(115,231,255,.035)}[aria-invalid=true]{border-color:var(--danger)}.check-row{grid-template-columns:20px 1fr;gap:10px;align-items:start;line-height:1.45;font-weight:520}.check-row input{width:18px;height:18px;min-height:0;margin:1px 0 0;accent-color:#68d7ef}.form-submit{width:100%;margin-top:3px}.form-status{min-height:21px;margin:0;color:var(--muted);font-size:12px;line-height:1.5}.form-status.ok{color:var(--ok)}.form-status.error{color:var(--danger)}.mail-fallback{justify-content:center;color:var(--accent);font-size:13px}
/* dialog */.project-dialog{width:min(760px,calc(100vw - 28px));max-height:min(88vh,900px);padding:0;border:1px solid var(--border2);border-radius:24px;background:#0a0d10;color:var(--text);box-shadow:0 30px 110px rgba(0,0,0,.65);overflow:auto}.project-dialog::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(6px)}.dialog-inner{position:relative;padding:clamp(25px,4vw,48px)}.dialog-close{position:absolute;right:18px;top:18px;width:42px;height:42px;border:1px solid var(--border);border-radius:50%;background:rgba(255,255,255,.03);cursor:pointer;font-size:22px}.dialog-inner h2{margin:0 52px 12px 0;font-size:clamp(29px,4vw,48px);letter-spacing:-.045em}.dialog-intro{max-width:580px;margin:0 0 26px;color:var(--muted);line-height:1.6}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.project-detail{display:grid;gap:26px}.project-detail section{padding-top:22px;border-top:1px solid var(--border)}.project-detail h3{margin:0 0 9px;font-size:14px}.project-detail p,.project-detail li{color:var(--muted);line-height:1.65}.project-detail ul{margin:0;padding-left:20px}.detail-note{padding:16px;border:1px solid rgba(115,231,255,.16);border-radius:14px;background:rgba(115,231,255,.045)}
/* footer */.site-footer{padding:38px 0 52px;border-top:1px solid var(--border)}.footer-grid{display:flex;justify-content:space-between;gap:35px}.site-footer strong{font-size:14px}.site-footer p,.footer-links{color:var(--dim);font-size:11px;line-height:1.6}.site-footer p{margin:7px 0 0}.footer-links{display:flex;gap:15px;flex-wrap:wrap;justify-content:flex-end}.footer-links a:hover{color:var(--text)}.no-js-note{color:var(--muted)}
/* motion */.reveal{opacity:1;transform:none}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .62s var(--ease),transform .62s var(--ease)}.js .reveal.visible{opacity:1;transform:none}.hero-enter{opacity:1;transform:none}.js .hero-enter{opacity:0;transform:translateY(16px);animation:heroIn .66s var(--ease) forwards}.js .hero-enter:nth-child(2){animation-delay:.07s}.js .hero-enter:nth-child(3){animation-delay:.13s}.js .hero-enter:nth-child(4){animation-delay:.19s}.js .hero-enter:nth-child(5){animation-delay:.25s}@keyframes heroIn{to{opacity:1;transform:none}}
/* responsive */@media(max-width:1120px){:root{--shell:min(100% - 40px,1120px)}.hero-grid{grid-template-columns:1.15fr .85fr}.hero-title{font-size:clamp(2.9rem,5.4vw,4.9rem)}.project-card{grid-template-columns:125px minmax(0,1fr)}.project-side{grid-column:2}.engine-stage{min-height:440px}}
@media(max-width:880px){:root{--header:70px;--shell:min(100% - 32px,800px)}.menu-toggle{display:block}.site-nav{position:fixed;inset:var(--header) 0 0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:22px 20px 40px;background:rgba(5,6,7,.985);transform:translateX(100%);visibility:hidden;transition:transform .28s var(--ease),visibility .28s step-end}.site-nav.open{transform:none;visibility:visible;transition:transform .28s var(--ease)}.site-nav>a{min-height:62px;display:flex;align-items:center;border-bottom:1px solid var(--border);font-size:19px}.nav-actions{margin-top:25px}.hero{min-height:auto;padding-top:calc(var(--header) + 58px);padding-bottom:90px}.hero-grid,.about-grid,.contact-grid{grid-template-columns:1fr}.hero-title{font-size:clamp(2.7rem,9vw,4.4rem);line-height:1.02}.engine-stage{min-height:400px}.expertise-grid{grid-template-columns:1fr}.capability{min-height:auto}.capability-symbol{margin-bottom:52px}.split-heading{grid-template-columns:1fr;gap:18px}.split-heading>p{margin-left:0}.contact-copy{position:static}.about-frame{min-height:440px}}
@media(max-width:640px){:root{--shell:calc(100% - 28px)}.brand-name{display:none}.hero{padding-top:calc(var(--header) + 46px)}.eyebrow{font-size:9px}.hero-title{font-size:clamp(2.45rem,11.5vw,3.9rem);line-height:1.03}.hero-lead{font-size:17px}.hero-actions{align-items:stretch}.button{width:100%}.text-link{width:100%;justify-content:center}.credibility{grid-template-columns:1fr;gap:0;margin-top:33px}.credibility li{min-height:67px;display:grid;grid-template-columns:72px 1fr;align-items:center;padding:10px 4px}.engine-stage{min-height:325px}.engine-fallback{width:min(295px,80vw)}.engine-caption{bottom:3px;max-width:90%;text-align:center;line-height:1.4}.expertise-section,.work-section,.about-section,.contact-section{padding:94px 0}.section-heading{margin-bottom:41px}.section-heading h2,.about-copy h2,.contact-copy h2{font-size:clamp(2.48rem,12vw,4.35rem)}.capability{padding:27px 23px}.project-card{grid-template-columns:1fr;gap:22px;padding:25px 21px}.project-meta{flex-direction:row;align-items:center}.project-side{grid-column:auto}.about-frame{min-height:350px}.two-cols{grid-template-columns:1fr}.footer-grid{flex-direction:column}.footer-links{justify-content:flex-start}}
/* accessibility preferences */@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.js .reveal,.js .hero-enter{opacity:1!important;transform:none!important}.engine-canvas{display:none}.engine-fallback{opacity:1!important}}@media(prefers-contrast:more){:root{--muted:#c7cdd1;--dim:#aab2b8;--border:rgba(255,255,255,.25);--border2:rgba(255,255,255,.38)}}
.legal-page{padding:100px 0;max-width:880px}.legal-page h1{font-size:clamp(2.7rem,7vw,5.5rem);letter-spacing:-.055em;line-height:.98}.legal-page h2{margin-top:48px}.legal-page p{color:var(--muted);font-size:17px;line-height:1.7}.legal-warning{margin:28px 0;padding:16px;border:1px solid rgba(255,196,115,.3);border-radius:14px;background:rgba(255,196,115,.05);color:#ffd4a0;line-height:1.55}
select{width:100%;min-height:48px;border:1px solid var(--border);border-radius:12px;background:#0e1215;color:var(--text);padding:0 14px}.privacy-form{margin-top:28px}.privacy-result{white-space:pre-wrap;overflow:auto;padding:16px;border:1px solid var(--border);border-radius:14px;background:#0b0e11;color:var(--muted);font-size:12px;line-height:1.55}
/* hero engine (CSS-only) */
.engine-stage .engine-fallback{animation:engineDrift 30s ease-in-out infinite alternate}
@keyframes engineDrift{from{transform:rotateX(62deg) rotateZ(-12deg)}to{transform:rotateX(66deg) rotateZ(4deg)}}
/* about milestones (light section) */
.about-milestones{list-style:none;margin:34px 0 0;padding:0;display:grid;gap:0;border-top:1px solid rgba(12,17,21,.14)}
.about-milestone{display:grid;grid-template-columns:auto 1fr;gap:0 15px;padding:18px 0;border-bottom:1px solid rgba(12,17,21,.14)}
.milestone-mark{grid-row:span 2;width:9px;height:9px;margin-top:7px;border:1px solid #167b8f;border-radius:50%}
.about-milestone h3{margin:0;color:#0a0f12;font-size:15px;font-weight:740;letter-spacing:-.01em}
.about-milestone p{margin:5px 0 0;color:#48525a;font-size:13.5px;line-height:1.55}
