:root{--ink:#101411;--paper:#e9ebe4;--muted:#969c93;--lime:#d5ff40;--line:rgba(16,20,17,.16);--side:280px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;overflow-x:hidden}.noise{position:fixed;inset:0;z-index:20;opacity:.055;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}.cursor-glow{position:fixed;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,rgba(213,255,64,.13),transparent 68%);pointer-events:none;z-index:1;transform:translate(-50%,-50%);transition:left .18s,top .18s}.sidebar{background:#151915;color:#ecede8;position:fixed;width:var(--side);inset:0 auto 0 0;z-index:10;padding:34px 27px 24px;display:flex;flex-direction:column;border-right:1px solid #2b312b}.brand{font:700 27px/1 'DM Mono';text-decoration:none;color:inherit;letter-spacing:-2px}.brand span{color:var(--lime)}.side-profile{width:105px;height:105px;margin:48px auto 15px;position:relative;border-radius:50%;background:#c3cf9e;overflow:hidden}.side-profile:after{content:"";position:absolute;inset:5px;border:1px solid rgba(255,255,255,.7);border-radius:50%}.side-profile img{position:absolute;width:140%;left:-20%;top:3%;filter:grayscale(1);mix-blend-mode:multiply}.mini-orbit{position:absolute;inset:-7px;border:1px dashed var(--lime);border-radius:50%;animation:spin 12s linear infinite}.side-intro{text-align:center}.side-intro strong{font-size:17px;line-height:1.13;display:block}.side-intro small{color:#969c93;font:11px 'DM Mono';text-transform:uppercase;letter-spacing:1px}.availability{font:10px 'DM Mono';letter-spacing:.3px;text-transform:uppercase;border:1px solid #333b32;border-radius:20px;padding:8px 10px;margin:26px 0}.availability b{width:6px;height:6px;background:var(--lime);display:inline-block;border-radius:50%;margin:0 6px 1px 0;box-shadow:0 0 10px var(--lime)}nav{display:grid;gap:3px}nav a{color:#999f98;font-size:12px;text-decoration:none;padding:8px 9px;border-radius:4px;transition:.25s}nav a em{font:10px 'DM Mono';float:right;font-style:normal;color:#636861}nav a:hover,nav a.active{background:#252b24;color:#fff}.side-footer{margin-top:auto;font-size:10px}.side-footer div{display:flex;gap:14px;margin-bottom:13px}.side-footer a{color:#aab0a8;text-decoration:none}.resume{font:10px 'DM Mono';color:var(--lime)!important}.mobile-bar{display:none}main{margin-left:var(--side)}.panel{position:relative}.section{padding:130px clamp(26px,7vw,120px);border-bottom:1px solid var(--line)}.hero{height:min(100vh,900px);min-height:740px;background:#171c18;color:#f0f1eb;padding:clamp(42px,8vw,120px);overflow:hidden;isolation:isolate}.hero-grid{position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(90deg,#000,transparent 85%);z-index:-1}#universe{position:absolute;inset:0;width:100%;height:100%;opacity:.65;z-index:-2}.eyebrow,.section-label{font:11px 'DM Mono';letter-spacing:1.4px;text-transform:uppercase}.eyebrow{color:#b8c0b5}.eyebrow span{display:inline-block;width:35px;border-top:1px solid var(--lime);vertical-align:middle;margin:0 8px}.hero-copy{max-width:780px;margin-top:12vh;position:relative;z-index:1}.hero h1,.section h2{font-size:clamp(47px,6.4vw,104px);letter-spacing:-.075em;line-height:.94;margin:25px 0;font-weight:700}.hero h1 i,.section h2 i{font-family:'Playfair Display';font-weight:600}.lede{font-size:15px;line-height:1.8;color:#bdc2ba;max-width:570px}.hero-actions,.contact-actions{display:flex;align-items:center;gap:28px;margin-top:35px}.button{background:var(--lime);color:#101411;text-decoration:none;padding:15px 17px;font-size:12px;font-weight:800;display:inline-flex;gap:26px;align-items:center;border-radius:3px;transition:transform .25s,box-shadow .25s}.button:hover{box-shadow:5px 5px 0 #fff;transform:translate(-2px,-2px)}.button span{font-size:17px}.text-link{color:inherit;text-decoration:none;font-size:12px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:5px}.text-link span{margin-left:8px;color:var(--lime)}.portrait-stage{position:absolute;right:5%;bottom:-2%;height:79%;width:min(38vw,490px);transform-style:preserve-3d}.portrait-halo{position:absolute;width:95%;aspect-ratio:1;border-radius:50%;left:1%;top:4%;background:radial-gradient(circle,#d5ff40 0 1%,rgba(213,255,64,.12) 2%,transparent 68%);border:1px solid rgba(213,255,64,.35);animation:pulse 5s ease infinite}.portrait-frame{height:100%;overflow:hidden;position:relative;mask-image:linear-gradient(#000 82%,transparent)}.portrait{position:absolute;height:95%;bottom:0;left:50%;transform:translateX(-50%);filter:grayscale(.3);transition:opacity 1.2s ease,transform .7s ease}.p-two{opacity:0}.portrait-stage:hover .p-two{opacity:1}.portrait-stage:hover .p-one{opacity:0}.portrait-note{position:absolute;right:-10%;top:8%;font:10px 'DM Mono';letter-spacing:1px;text-transform:uppercase;line-height:1.7;color:#a4aa9f}.portrait-note b{color:var(--lime)}.hero-tags{position:absolute;bottom:52px;left:clamp(42px,8vw,120px);display:flex;gap:7px;flex-wrap:wrap;max-width:55%}.hero-tags span{border:1px solid #465046;border-radius:20px;padding:7px 10px;font:9px 'DM Mono';text-transform:uppercase;color:#c8ccc4}.scroll-prompt{position:absolute;right:42px;bottom:40px;color:#a8aea5;text-decoration:none;font:10px 'DM Mono';writing-mode:vertical-rl}.scroll-prompt b{color:var(--lime);font-size:18px;margin-top:7px}.section-label{color:#747a72;margin-bottom:70px}.section-label span{color:#202620;margin-right:14px}.about{background:#d7dbd2}.about-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:10vw}.about h2{margin:0;font-size:clamp(44px,5vw,80px)}.about-story{max-width:530px;font-size:15px;line-height:1.85}.about-story p:first-child{font-size:18px;line-height:1.7;margin-top:0}.traits{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.traits span{font:10px 'DM Mono';border:1px solid #a6aaa2;padding:9px 10px;border-radius:20px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:55px}.section-head h2{font-size:clamp(44px,5.3vw,82px);margin:0}.section-head>p{max-width:260px;font-size:13px;line-height:1.7;color:#656c63}.services{background:#f0f1ed}.service-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.service-card{min-height:500px;padding:30px 28px;border-right:1px solid var(--line);position:relative;transition:.4s}.service-card:last-child{border:0}.service-card:hover{background:#1b211c;color:#edf0e9;transform:translateY(-10px)}.service-number{font:11px 'DM Mono';color:#8c9389}.service-icon{width:51px;height:51px;display:grid;place-items:center;border-radius:50%;background:#d7ff43;margin:43px 0 48px;font:18px 'DM Mono';color:#172018}.data-icon{font-size:27px}.support-icon{font-size:32px}.service-card h3{font-size:25px;letter-spacing:-.06em;margin:0}.service-card p{font-size:12px;line-height:1.7;color:#737a71;margin:16px 0 22px}.service-card:hover p{color:#b0b7ad}.service-card ul{list-style:none;padding:0;font:10px/2.1 'DM Mono';color:#788077}.service-card:hover ul{color:#c5cbc2}.service-card a{position:absolute;bottom:29px;color:inherit;text-decoration:none;font-size:11px;font-weight:800}.service-card a b{color:#7c9426;margin-left:10px}.data-section{background:#202620;color:#eff1eb;overflow:hidden}.data-layout{display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.data-section h2{margin:18px 0}.speed{margin-top:40px;display:flex;align-items:center;gap:12px}.speed strong{font-size:90px;letter-spacing:-.1em;color:var(--lime);line-height:.8}.speed span{font:12px 'DM Mono';line-height:1.2}.speed small{color:#8c958a}.capability-cloud{display:flex;flex-wrap:wrap;gap:9px;align-content:center}.capability-cloud span{padding:11px 13px;border:1px solid #465045;border-radius:3px;font:11px 'DM Mono';transition:.3s}.capability-cloud span:nth-child(3n):hover{background:var(--lime);color:#101411;transform:rotate(-3deg)}.support{background:#e4e6df}.support-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw}.support h2{font-size:clamp(44px,5vw,78px);margin:0 0 28px}.support-layout>div>p{font-size:14px;line-height:1.8;max-width:350px}.workflow{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.workflow li{min-height:145px;padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.workflow li:hover{background:var(--lime)}.workflow span{font:10px 'DM Mono';color:#6c726b}.workflow b{font-size:15px;letter-spacing:-.05em}.support-skills{margin-top:60px;display:flex;gap:9px;flex-wrap:wrap}.support-skills span{font:10px 'DM Mono';text-transform:uppercase;padding:9px;border-bottom:1px solid #aeb2aa}.skills{background:#121712;color:#edf0ea}.skills .section-label{color:#9da69d}.skills-board{border:1px solid #3b433a;display:grid;grid-template-columns:1.1fr 1.2fr .8fr}.skill-cluster{padding:35px;min-height:245px;border-right:1px solid #3b433a}.skill-cluster:last-child{border:0}.skill-cluster small{display:block;color:var(--lime);font:10px 'DM Mono';text-transform:uppercase;margin-bottom:30px}.skill-cluster span{font-size:14px;display:inline-block;margin:0 14px 14px 0;color:#b6bdb4;transition:.2s}.skill-cluster span:hover{color:var(--lime);transform:translateY(-3px)}.experience{background:#d5ff40}.experience .section-label{color:#34410b}.experience h2{margin:0 0 70px}.timeline{margin-left:20%;border-top:1px solid rgba(16,20,17,.3)}.timeline article{padding:32px 0 40px;border-bottom:1px solid rgba(16,20,17,.3);display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:30px}.timeline p{font:11px 'DM Mono';text-transform:uppercase;margin:0}.timeline p span{display:block;margin-top:7px;opacity:.55}.timeline h3{font-size:19px;letter-spacing:-.05em;margin:0;line-height:1.4}.timeline article>div{font:10px/1.7 'DM Mono'}.projects{background:#f1f2ed}.featured-project{display:grid;grid-template-columns:1.15fr .85fr;background:#172019;color:#eef0ea;min-height:550px}.project-art{padding:42px;overflow:hidden;position:relative;background:#d1ff3a}.art-window{height:100%;border:1px solid #142012;background:#152317;padding:28px;color:#eaf0dc;position:relative;box-shadow:14px 14px 0 rgba(13,20,13,.35);transition:transform .4s}.featured-project:hover .art-window{transform:rotate(-2deg) translateY(-5px)}.art-window i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#d5ff40;margin-right:5px}.art-window b{display:block;font-size:clamp(35px,4vw,60px);letter-spacing:-.08em;margin-top:25%;font-family:'Playfair Display'}.art-window span{font:10px 'DM Mono';color:#b3c2aa}.fake-lines{position:absolute;bottom:30px;width:74%;height:50px;border-top:1px solid #7b9875;border-bottom:1px solid #7b9875}.project-copy{padding:65px 55px;display:flex;flex-direction:column;align-items:start}.project-copy h3{font-size:clamp(30px,3vw,47px);line-height:1;letter-spacing:-.07em;margin:21px 0}.project-copy>p:not(.eyebrow){font-size:13px;line-height:1.8;color:#adb5aa}.project-meta{display:flex;gap:32px;margin:20px 0 32px;font:10px/1.7 'DM Mono';color:#8c9789}.project-meta b{color:#edf0ea;font-family:Manrope;font-size:11px}.project-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.project-row article{padding:24px;border:1px solid var(--line)}.small-art{height:205px;padding:22px;display:flex;justify-content:space-between;align-items:start}.small-art b{font:48px 'Playfair Display'}.small-art span{font:10px 'DM Mono';text-align:right}.inventory-art{background:#c4d1cc}.barangay-art{background:#d7c6b8}.project-row p{font:10px 'DM Mono';text-transform:uppercase;color:#737b72;margin:20px 0 10px}.project-row h3{font-size:25px;letter-spacing:-.06em;margin:0 0 20px}.project-row a{font:11px 'DM Mono';color:inherit}.github{background:#e0e4db}.repo-controls{display:flex;justify-content:space-between;gap:20px;margin-bottom:18px}.repo-controls label{border-bottom:1px solid #697269;display:flex;align-items:center;gap:9px;min-width:260px}.repo-controls input{border:0;background:none;padding:12px 0;outline:0;font:12px Manrope;width:100%}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{border:1px solid #aeb4ab;background:transparent;padding:7px 10px;font:10px 'DM Mono';cursor:pointer}.filters button.active,.filters button:hover{background:#172019;color:#fff;border-color:#172019}.repo-status{font:11px 'DM Mono';color:#647064}.repo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.repo-card{border:1px solid #b8bdb5;padding:21px;min-height:185px;display:flex;flex-direction:column;transition:.25s}.repo-card:hover{background:#172019;color:#eff0ea;transform:translateY(-5px)}.repo-card h3{font-size:16px;margin:0 0 10px}.repo-card p{font-size:11px;line-height:1.6;color:#697168;margin:0}.repo-card:hover p{color:#b8c0b6}.repo-card footer{display:flex;gap:12px;align-items:center;margin-top:auto;font:10px 'DM Mono';color:#6f766f}.repo-card footer a{margin-left:auto;color:inherit}.contact{background:#171c18;color:#e9ede5;padding-bottom:38px}.contact h2{font-size:clamp(46px,6.3vw,100px);margin:23px 0}.contact-lede{max-width:500px;font-size:15px;line-height:1.8;color:#afb7ac}.contact-info{margin-top:105px;padding-top:20px;border-top:1px solid #3b443a;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font:11px 'DM Mono';color:#a4aca0}.contact-info a{color:#e9ede5;text-decoration:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{transform:scale(1.07);opacity:.6}}.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:1050px){:root{--side:230px}.sidebar{padding:28px 20px}.hero h1{font-size:clamp(47px,6.8vw,80px)}.portrait-stage{right:1%;width:40vw}.section{padding:100px 6vw}.service-card{padding:25px 20px}.project-copy{padding:48px 35px}}@media(max-width:760px){:root{--side:0}.sidebar{transform:translateX(-100%);transition:.35s;width:min(85vw,330px);box-shadow:15px 0 50px #0008}.sidebar.open{transform:none}.mobile-bar{position:fixed;display:flex;z-index:12;top:0;width:100%;padding:20px 22px;justify-content:space-between;align-items:center;color:#edf0e9;mix-blend-mode:difference}.menu-btn{border:1px solid #fff;background:transparent;width:42px;height:34px;padding:8px;display:grid;gap:6px}.menu-btn i{height:1px;background:#fff;width:100%;display:block}main{margin:0}.hero{min-height:730px;height:100svh;padding:100px 25px 30px}.hero-copy{margin-top:7vh}.hero h1{font-size:clamp(48px,13vw,70px)}.hero .lede{font-size:13px;max-width:86%}.portrait-stage{width:61vw;height:48%;right:-5%;bottom:4%;opacity:.75}.portrait-note{display:none}.hero-tags{bottom:38px;left:25px;max-width:55%}.hero-tags span{font-size:8px;padding:5px 7px}.scroll-prompt{display:none}.section{padding:82px 25px}.section-label{margin-bottom:45px}.about-layout,.data-layout,.support-layout{grid-template-columns:1fr;gap:35px}.about-story p:first-child{font-size:16px}.section-head{align-items:start;flex-direction:column;margin-bottom:38px}.section-head>p{margin:0}.service-list,.skills-board{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line);min-height:420px}.service-card:last-child{border-bottom:0}.service-icon{margin:25px 0 32px}.workflow{grid-template-columns:repeat(2,1fr)}.support-skills{margin-top:35px}.skill-cluster{min-height:auto;border-right:0;border-bottom:1px solid #3b433a}.timeline{margin-left:0}.timeline article{grid-template-columns:1fr;gap:16px}.featured-project{grid-template-columns:1fr}.project-art{height:330px;padding:25px}.project-copy{padding:35px 25px}.project-row{grid-template-columns:1fr}.repo-controls{display:block}.repo-controls label{margin-bottom:16px}.repo-grid{grid-template-columns:1fr}.contact-info{margin-top:70px;flex-direction:column}.cursor-glow{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
/* Explicitly center the portrait crop within its circular frame. */
.side-profile{display:grid;place-items:center}
.side-profile img{left:50%;transform:translateX(-50%);height:auto}
.side-profile:after{pointer-events:none}
.availability{text-align:center}
