<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>EDIT by Abha — Image Advisory for Ambitious Men</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400;1,9..144,500&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<style>
:root{
--black:#111111;
--black-soft:#17140f;
--beige:#d8c3a5;
--beige-light:#f2ead9;
--burgundy:#6b1f2a;
--burgundy-deep:#4a151d;
--line-on-black: rgba(216,195,165,.22);
--line-on-beige: rgba(17,17,17,.16);
--serif:'Fraunces', serif;
--sans:'Inter', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
background:var(--black);
color:var(--beige);
font-family:var(--sans);
font-weight:400;
-webkit-font-smoothing:antialiased;
overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
::selection{background:var(--burgundy);color:var(--beige-light);}
.label{
font-family:var(--sans);
font-size:11px;
letter-spacing:.22em;
text-transform:uppercase;
font-weight:500;
}
.rule{height:1px;width:100%;background:var(--line-on-black);border:none;}
.rule.on-beige{background:var(--line-on-beige);}
.wrap{
max-width:1400px;
margin:0 auto;
padding:0 56px;
}
img,svg{display:block;max-width:100%;}
/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);}
.reveal.is-in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){
.reveal{opacity:1;transform:none;transition:none;}
html{scroll-behavior:auto;}
}
/* ---------- nav ---------- */
header{
position:fixed;
top:0;left:0;right:0;
z-index:100;
padding:26px 56px;
display:flex;
align-items:center;
justify-content:space-between;
background:linear-gradient(to bottom, rgba(17,17,17,.85), transparent);
transition:background .4s ease, padding .4s ease, border-color .4s ease;
border-bottom:1px solid transparent;
}
header.scrolled{
background:rgba(17,17,17,.92);
backdrop-filter:blur(10px);
padding:18px 56px;
border-bottom:1px solid var(--line-on-black);
}
.wordmark{
font-family:var(--serif);
font-size:22px;
letter-spacing:.14em;
font-weight:500;
color:var(--beige-light);
}
.wordmark span{color:var(--burgundy);}
nav.links{display:flex;gap:40px;align-items:center;}
nav.links a{
font-size:11px;
letter-spacing:.16em;
text-transform:uppercase;
font-weight:500;
color:var(--beige);
opacity:.8;
position:relative;
padding-bottom:4px;
}
nav.links a::after{
content:'';
position:absolute;left:0;bottom:0;
width:0;height:1px;background:var(--burgundy);
transition:width .35s ease;
}
nav.links a:hover{opacity:1;}
nav.links a:hover::after{width:100%;}
.nav-cta{
border:1px solid var(--beige);
padding:11px 22px;
font-size:11px;
letter-spacing:.16em;
text-transform:uppercase;
font-weight:500;
transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.nav-cta:hover{background:var(--burgundy);border-color:var(--burgundy);color:var(--beige-light);}
.menu-btn{display:none;background:none;border:none;color:var(--beige);cursor:pointer;}
/* ---------- hero ---------- */
.hero{
position:relative;
min-height:100vh;
display:flex;
align-items:center;
padding:150px 0 100px;
overflow:hidden;
background:
repeating-linear-gradient(90deg, transparent, transparent 79px, var(--line-on-black) 80px);
}
.hero-grid{
position:relative;
width:100%;
display:grid;
grid-template-columns:1.05fr .95fr;
gap:40px;
align-items:center;
}
.side-label{
position:absolute;
left:56px;top:50%;
transform:translateY(-50%) rotate(180deg);
writing-mode:vertical-rl;
color:var(--beige);
opacity:.55;
display:flex;
align-items:center;
gap:14px;
}
.side-label .dot{width:5px;height:5px;border-radius:50%;background:var(--burgundy);flex-shrink:0;}
.hero-copy{padding-left:56px;}
.hero-eyebrow{
display:flex;align-items:center;gap:12px;
margin-bottom:26px;
color:var(--beige);
opacity:.85;
}
.hero-eyebrow .ln{width:36px;height:1px;background:var(--burgundy);}
h1.hero-headline{
font-family:var(--serif);
font-weight:400;
font-size:clamp(52px, 6.6vw, 104px);
line-height:.98;
letter-spacing:-.01em;
color:var(--beige-light);
}
h1.hero-headline em{
font-style:italic;
font-weight:500;
color:var(--burgundy);
}
.hero-sub{
margin-top:32px;
max-width:440px;
font-size:16px;
line-height:1.7;
color:var(--beige);
opacity:.82;
font-weight:400;
}
.hero-actions{
margin-top:44px;
display:flex;
align-items:center;
gap:28px;
}
.btn-primary{
background:var(--burgundy);
color:var(--beige-light);
padding:17px 34px;
font-size:11px;
letter-spacing:.18em;
text-transform:uppercase;
font-weight:500;
transition:background .3s ease, transform .3s ease;
display:inline-block;
}
.btn-primary:hover{background:#7f2632;transform:translateY(-2px);}
.btn-secondary{
font-size:11px;
letter-spacing:.16em;
text-transform:uppercase;
font-weight:500;
border-bottom:1px solid var(--line-on-black);
padding-bottom:4px;
color:var(--beige);
opacity:.85;
transition:opacity .3s ease, border-color .3s ease;
}
.btn-secondary:hover{opacity:1;border-color:var(--beige);}
.hero-graphic{position:relative;height:640px;}
.crop-number{
position:absolute;
font-family:var(--serif);
font-weight:300;
font-size:min(46vw, 560px);
line-height:1;
color:var(--beige);
opacity:.05;
top:-6%;
right:-14%;
user-select:none;
pointer-events:none;
}
/* ---------- section shell ---------- */
section{position:relative;}
.on-beige{background:var(--beige-light);color:var(--black);}
.pad{padding:150px 0;}
.eyebrow-row{
display:flex;align-items:center;gap:14px;
margin-bottom:22px;
}
.eyebrow-row .ln{width:36px;height:1px;background:var(--burgundy);}
/* ---------- statement ---------- */
.statement{display:grid;grid-template-columns:.8fr 2fr;gap:60px;align-items:start;}
.statement-num{
font-family:var(--serif);
font-size:20px;
color:var(--burgundy);
letter-spacing:.05em;
}
.statement p.big{
font-family:var(--serif);
font-weight:400;
font-size:clamp(30px, 3.6vw, 52px);
line-height:1.24;
letter-spacing:-.005em;
}
.statement p.big em{color:var(--burgundy);font-style:italic;font-weight:500;}
/* ---------- method ---------- */
.method{background:var(--black);}
.method-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:80px;flex-wrap:wrap;gap:24px;}
h2.section-title{
font-family:var(--serif);
font-weight:400;
font-size:clamp(34px,4.2vw,58px);
color:var(--beige-light);
line-height:1.05;
}
.method-intro{max-width:340px;font-size:14.5px;line-height:1.75;opacity:.75;}
.method-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
border-top:1px solid var(--line-on-black);
}
.method-item{
padding:44px 30px 44px 0;
border-right:1px solid var(--line-on-black);
}
.method-item:last-child{border-right:none;}
.method-item .mnum{
font-family:var(--serif);
font-size:15px;
color:var(--burgundy);
letter-spacing:.05em;
margin-bottom:26px;
display:block;
}
.method-item h3{
font-family:var(--serif);
font-weight:500;
font-size:24px;
color:var(--beige-light);
margin-bottom:16px;
letter-spacing:.01em;
}
.method-item p{
font-size:13.5px;
line-height:1.75;
opacity:.72;
}
/* ---------- criteria ---------- */
.criteria{on-beige}
.criteria-grid{display:grid;grid-template-columns:.9fr 2fr;gap:60px;}
.criteria-list{border-top:1px solid var(--line-on-beige);}
.criteria-row{
display:grid;
grid-template-columns:28px 1fr;
gap:22px;
padding:26px 0;
border-bottom:1px solid var(--line-on-beige);
align-items:baseline;
}
.criteria-row .mark{color:var(--burgundy);font-family:var(--serif);font-style:italic;font-size:18px;}
.criteria-row p{font-size:17px;line-height:1.6;font-family:var(--serif);font-weight:400;}
.criteria-sticky{position:sticky;top:140px;align-self:start;}
.criteria-sticky .label{color:var(--burgundy);}
.criteria-sticky h2{margin-top:20px;}
/* ---------- facts ---------- */
.facts{background:var(--black);}
.facts-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
border-top:1px solid var(--line-on-black);
border-bottom:1px solid var(--line-on-black);
}
.fact{
padding:56px 28px;
border-right:1px solid var(--line-on-black);
}
.fact:last-child{border-right:none;}
.fact .fnum{
font-family:var(--serif);
font-weight:400;
font-size:56px;
color:var(--beige-light);
line-height:1;
}
.fact .fnum span{color:var(--burgundy);}
.fact .flabel{
margin-top:16px;
font-size:11px;
letter-spacing:.16em;
text-transform:uppercase;
opacity:.65;
}
/* ---------- about ---------- */
.about{background:var(--beige-light);color:var(--black);}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;}
.monogram-box{
position:relative;
aspect-ratio:1/1.1;
border:1px solid var(--line-on-beige);
display:flex;
align-items:center;
justify-content:center;
overflow:hidden;
}
.monogram{
font-family:var(--serif);
font-weight:300;
font-size:min(30vw,320px);
color:var(--black);
line-height:1;
opacity:.9;
}
.about-copy .label{color:var(--burgundy);}
.about-copy h2{margin-top:18px;margin-bottom:26px;}
.about-copy p{
font-size:16px;
line-height:1.8;
max-width:480px;
margin-bottom:18px;
opacity:.85;
}
.about-quote{
margin-top:34px;
padding-left:26px;
border-left:2px solid var(--burgundy);
font-family:var(--serif);
font-style:italic;
font-size:20px;
line-height:1.6;
max-width:460px;
}
.about-sign{margin-top:20px;font-family:var(--serif);font-size:15px;letter-spacing:.06em;opacity:.75;}
/* ---------- cta ---------- */
.cta{
background:var(--burgundy);
color:var(--beige-light);
text-align:center;
padding:170px 0;
position:relative;
overflow:hidden;
}
.cta::before{
content:'';
position:absolute;
inset:0;
background:repeating-linear-gradient(90deg, transparent, transparent 99px, rgba(216,195,165,.08) 100px);
pointer-events:none;
}
.cta .label{opacity:.85;justify-content:center;display:flex;}
h2.cta-headline{
font-family:var(--serif);
font-weight:400;
font-size:clamp(40px,6vw,84px);
line-height:1.02;
margin:26px 0 40px;
}
h2.cta-headline em{font-style:italic;font-weight:500;}
.cta-note{font-size:13.5px;opacity:.72;margin-top:26px;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.7;}
.btn-on-burgundy{
background:var(--beige-light);
color:var(--black);
padding:18px 38px;
font-size:11px;
letter-spacing:.18em;
text-transform:uppercase;
font-weight:500;
display:inline-block;
transition:transform .3s ease, background .3s ease;
}
.btn-on-burgundy:hover{transform:translateY(-2px);background:#fff;}
/* ---------- footer ---------- */
footer{
background:var(--black);
padding:80px 0 40px;
}
.footer-top{
display:grid;
grid-template-columns:1.4fr 1fr 1fr 1fr;
gap:40px;
padding-bottom:70px;
}
.footer-word{
font-family:var(--serif);
font-size:30px;
letter-spacing:.1em;
color:var(--beige-light);
margin-bottom:18px;
}
.footer-word span{color:var(--burgundy);}
.footer-top p{font-size:13.5px;line-height:1.7;opacity:.62;max-width:280px;}
.footer-col .label{opacity:.55;margin-bottom:18px;display:block;}
.footer-col a{
display:block;
font-size:14px;
padding:7px 0;
opacity:.78;
transition:opacity .25s ease, padding-left .25s ease;
}
.footer-col a:hover{opacity:1;padding-left:4px;}
.footer-bottom{
display:flex;
justify-content:space-between;
align-items:center;
padding-top:28px;
font-size:11px;
letter-spacing:.08em;
opacity:.5;
flex-wrap:wrap;
gap:14px;
}
/* ---------- responsive ---------- */
@media (max-width:1080px){
.wrap{padding:0 32px;}
header{padding:22px 32px;}
header.scrolled{padding:16px 32px;}
.hero{padding:140px 0 80px;background:none;}
.hero-grid{grid-template-columns:1fr;}
.side-label{display:none;}
.hero-copy{padding-left:0;}
.hero-graphic{height:360px;margin-top:40px;order:2;}
.statement{grid-template-columns:1fr;gap:26px;}
.method-grid{grid-template-columns:1fr 1fr;}
.method-item{border-bottom:1px solid var(--line-on-black);}
.criteria-grid{grid-template-columns:1fr;}
.criteria-sticky{position:static;margin-bottom:20px;}
.facts-grid{grid-template-columns:1fr 1fr;}
.fact{border-bottom:1px solid var(--line-on-black);}
.about-grid{grid-template-columns:1fr;}
.footer-top{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
.wrap{padding:0 22px;}
header{padding:18px 22px;}
header.scrolled{padding:14px 22px;}
nav.links{display:none;}
.nav-cta{padding:9px 16px;font-size:10px;}
.method-grid{grid-template-columns:1fr;}
.method-item{border-right:none;}
.facts-grid{grid-template-columns:1fr;}
.fact{border-right:none;}
.pad{padding:100px 0;}
.cta{padding:110px 0;}
.footer-top{grid-template-columns:1fr;gap:44px;}
.hero-actions{flex-direction:column;align-items:flex-start;gap:20px;}
}
/* focus visibility */
a:focus-visible, button:focus-visible{
outline:2px solid var(--burgundy);
outline-offset:3px;
}
</style>
</head>
<body>
<header id="siteHeader">
<div class="wordmark">EDIT by Abha<span>.</span></div>
<nav class="links">
<a href="#method">Who It’s For</a>
<a href="#criteria">The Method & Rates</a>
<a href="#about">About</a>
<a href="#contact" class="nav-cta">Book Your Free Consultation</a>
</nav>
</header>
<!-- ============ HERO ============ -->
<section class="hero">
<div class="wrap">
<div class="side-label label">PRIVATE IMAGE ADVISORY — FOUNDED BY ABHA</div>
<div class="hero-grid">
<div class="hero-copy reveal is-in">
<div class="hero-eyebrow label"><span class="ln"></span>IMAGE CONSULTING FOR MEN WHO'VE ALREADY ARRIVED</div>
<h1 class="hero-headline">Your ambition<br>built the life.<br><em>Now dress</em><br>for it.</h1>
<p class="hero-sub">A private advisory practice for founders, principals and executives whose image hasn't caught up to their results. We rebuild it — from the ground up, garment by garment, decision by decision.</p>
<div class="hero-actions">
<a href="#contact" class="btn-primary">Begin the Measure</a>
<a href="#method" class="btn-secondary">See the Method</a>
</div>
</div>
<div class="hero-graphic reveal is-in" aria-hidden="true">
<div class="crop-number">01</div>
<svg viewBox="0 0 520 640" width="100%" height="100%" style="position:absolute;inset:0;">
<defs>
<marker id="tick" markerWidth="8" markerHeight="8"><circle cx="4" cy="4" r="1.6" fill="var(--burgundy)"/></marker>
</defs>
<!-- construction / pattern block -->
<g fill="none" stroke="var(--beige)" stroke-width="1" opacity="0.55">
<path d="M120 60 L400 60 L400 300 L340 420 L360 580 L160 580 L180 420 L120 300 Z"/>
<line x1="120" y1="60" x2="400" y2="60"/>
<line x1="120" y1="300" x2="400" y2="300"/>
<line x1="120" y1="60" x2="120" y2="300"/>
<line x1="400" y1="60" x2="400" y2="300"/>
</g>
<g stroke="var(--burgundy)" stroke-width="1.1" opacity="0.9">
<line x1="80" y1="60" x2="80" y2="300" stroke-dasharray="2 5"/>
<line x1="70" y1="60" x2="90" y2="60"/>
<line x1="70" y1="300" x2="90" y2="300"/>
<line x1="120" y1="330" x2="400" y2="330" stroke-dasharray="2 5"/>
</g>
<g stroke="var(--beige)" stroke-width="0.6" opacity="0.35">
<line x1="120" y1="130" x2="400" y2="130"/>
<line x1="120" y1="200" x2="400" y2="200"/>
<line x1="220" y1="60" x2="220" y2="300"/>
<line x1="300" y1="60" x2="300" y2="300"/>
</g>
<g>
<circle cx="220" cy="130" r="2.4" fill="var(--burgundy)"/>
<circle cx="300" cy="200" r="2.4" fill="var(--burgundy)"/>
<circle cx="180" cy="420" r="2.4" fill="var(--burgundy)"/>
<circle cx="340" cy="420" r="2.4" fill="var(--burgundy)"/>
</g>
<text x="60" y="55" fill="var(--beige)" opacity="0.5" font-family="Inter" font-size="10" letter-spacing="1">A/W — CB PANEL</text>
<text x="380" y="605" fill="var(--beige)" opacity="0.5" font-family="Inter" font-size="10" letter-spacing="1">42R</text>
</svg>
</div>
</div>
</div>
</section>
<!-- ============ STATEMENT ============ -->
<section class="on-beige pad">
<div class="wrap statement">
<div class="reveal">
<div class="statement-num">— 02</div>
</div>
<div class="reveal">
<p class="big">Most men who win at work never think about how they look doing it — until someone else's polish starts <em>outshining</em> their results. Image isn't vanity. It's the last variable ambitious men forget to optimize.</p>
</div>
</div>
</section>
<!-- ============ METHOD ============ -->
<section class="method pad" id="method">
<div class="wrap">
<div class="method-head reveal">
<div>
<div class="eyebrow-row label"><span class="ln"></span>THE METHOD</div>
<h2 class="section-title">Built like a<br>bespoke garment.</h2>
</div>
<p class="method-intro">Four stages, in strict order. Each one exists because skipping it shows — on you, and in every room you walk into.</p>
</div>
<div class="method-grid reveal">
<div class="method-item">
<span class="mnum">01 / MEASURE</span>
<h3>Diagnostic</h3>
<p>A three-hour audit of your current wardrobe, grooming, posture and the rooms you actually walk into. We measure the gap between how you look and what you've built.</p>
</div>
<div class="method-item">
<span class="mnum">02 / CUT</span>
<h3>Strategy</h3>
<p>Your image, drafted like a pattern — silhouette, palette, grooming direction and a wardrobe architecture built around your role, your industry, and how you move through a week.</p>
</div>
<div class="method-item">
<span class="mnum">03 / FIT</span>
<h3>Build</h3>
<p>We source and commission — through a private network of tailors, makers and ateliers — every piece the strategy calls for, fitted to you specifically, not to a rack.</p>
</div>
<div class="method-item">
<span class="mnum">04 / FINISH</span>
<h3>Maintenance</h3>
<p>Quarterly refinement as your role, body and ambitions change. An image, like a business, needs upkeep to stay ahead of where you're headed.</p>
</div>
</div>
</div>
</section>
<!-- ============ CRITERIA ============ -->
<section class="on-beige pad" id="criteria">
<div class="wrap criteria-grid">
<div class="criteria-sticky reveal">
<div class="label">WHO THIS IS FOR</div>
<h2 class="section-title" style="color:var(--black);">Not everyone.<br>On purpose.</h2>
<p style="margin-top:22px;font-size:14.5px;line-height:1.75;opacity:.7;max-width:320px;">We take on a limited number of clients each quarter. This works best for men who recognize themselves below.</p>
</div>
<div class="criteria-list reveal">
<div class="criteria-row">
<span class="mark">—</span>
<p>You run something — a company, a fund, a team, a P&L — and your calendar has outgrown your closet.</p>
</div>
<div class="criteria-row">
<span class="mark">—</span>
<p>You've noticed your image reads younger, sloppier or less considered than your actual position.</p>
</div>
<div class="criteria-row">
<span class="mark">—</span>
<p>You don't have the time, and frankly don't want it, to learn tailoring, fabric or fit on your own.</p>
</div>
<div class="criteria-row">
<span class="mark">—</span>
<p>You want a system that runs quietly in the background of your life — not a shopping trip you have to manage.</p>
</div>
<div class="criteria-row">
<span class="mark">—</span>
<p>You'd rather be told the truth about what isn't working than be sold whatever's in season.</p>
</div>
</div>
</div>
</section>
<!-- ============ FACTS ============ -->
<section class="facts pad">
<div class="wrap">
<div class="eyebrow-row label reveal"><span class="ln"></span>THE ENGAGEMENT</div>
<div class="facts-grid reveal" style="margin-top:40px;">
<div class="fact">
<div class="fnum">12<span>wk</span></div>
<div class="flabel">Core Engagement</div>
</div>
<div class="fact">
<div class="fnum">1<span>:1</span></div>
<div class="flabel">Private Advisory, No Assistants</div>
</div>
<div class="fact">
<div class="fnum">04</div>
<div class="flabel">Clients Accepted Per Quarter</div>
</div>
<div class="fact">
<div class="fnum">∞</div>
<div class="flabel">Ongoing Access, By Retainer</div>
</div>
</div>
</div>
</section>
<!-- ============ ABOUT ============ -->
<section class="about pad" id="about">
<div class="wrap about-grid">
<div class="monogram-box reveal" aria-hidden="true">
<svg viewBox="0 0 400 440" width="100%" height="100%" style="position:absolute;inset:0;opacity:.5;">
<g stroke="var(--black)" stroke-width="0.6" opacity="0.3">
<line x1="40" y1="40" x2="360" y2="40"/>
<line x1="40" y1="400" x2="360" y2="400"/>
<line x1="40" y1="40" x2="40" y2="400"/>
<line x1="360" y1="40" x2="360" y2="400"/>
<line x1="40" y1="220" x2="360" y2="220"/>
</g>
<g stroke="var(--burgundy)" stroke-width="1">
<line x1="200" y1="40" x2="200" y2="400" stroke-dasharray="2 6" opacity="0.6"/>
</g>
</svg>
<span class="monogram">A</span>
</div>
<div class="about-copy reveal">
<div class="label">ABOUT</div>
<h2 class="section-title" style="color:var(--black);">Ally Marchetti</h2>
<p>Ally trained under a Savile Row cutting house before spending nine years advising founders and operators through two markets and one recession. She built this practice on a simple observation: the men with the most to lose spend the least time thinking about how they present it.</p>
<p>She works with a small number of clients directly, keeps no showroom, and answers to no brand. Her only allegiance is to the way you're perceived walking into the room that matters most this quarter.</p>
<div class="about-quote">"Nobody hires a stylist. They hire someone to stop leaving money on the table."</div>
<div class="about-sign">— Ally Marchetti, Founder</div>
</div>
</div>
</section>
<!-- ============ CTA ============ -->
<section class="cta" id="contact">
<div class="wrap">
<div class="label reveal">BY APPLICATION</div>
<h2 class="cta-headline reveal">Begin the <em>Measure.</em></h2>
<a href="#" class="btn-on-burgundy reveal">Request a Consultation</a>
<p class="cta-note reveal">Applications are reviewed within five business days. Four engagements accepted per quarter — the current cycle opens shortly.</p>
</div>
</section>
<!-- ============ FOOTER ============ -->
<footer>
<div class="wrap">
<div class="footer-top">
<div>
<div class="footer-word”>EDIT by Abha<span>.</span></div>
<p>Private image advisory for ambitious men. By application only.</p>
</div>
<div class="footer-col">
<span class="label">Practice</span>
<a href="#method">The Method</a>
<a href="#criteria">Who It's For</a>
<a href="#about">About Ally</a>
</div>
<div class="footer-col">
<span class="label">Contact</span>
<a href="mailto:editbyabha@“gmail.com>[email protected]</a>
</div>
</div>
<div class="rule"></div>
<div class="footer-bottom">
<span>© 2026 EDIT by Abha. ALL RIGHTS RESERVED.</span>
<span>MEASURE — CUT — FIT — FINISH</span>
</div>
</div>
</footer>
<script>
const header = document.getElementById('siteHeader');
window.addEventListener('scroll', () => {
header.classList.toggle('scrolled', window.scrollY > 40);
}, {passive:true});
const prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if(!prefersReduced && 'IntersectionObserver' in window){
const io = new IntersectionObserver((entries)=>{
entries.forEach(e=>{
if(e.isIntersecting){
e.target.classList.add('is-in');
io.unobserve(e.target);
}
});
}, {threshold:0.14, rootMargin:'0px 0px -60px 0px'});
document.querySelectorAll('.reveal').forEach(el=>io.observe(el));
} else {
document.querySelectorAll('.reveal').forEach(el=>el.classList.add('is-in'));
}
</script>
</body>
</html>