Timeline v4: warm editorial palette (terracotta+ochre on cream), Fraunces display serif, scroll-progress line, hero with stat counters, through-line narrative — genuinely inspiring not corporate
This commit is contained in:
774
timeline.html
774
timeline.html
@@ -4,480 +4,384 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
<title>Career Arc · Anthony Martin</title>
|
<title>Career Arc · Anthony Martin</title>
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet">
|
<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:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
|
||||||
<style>
|
<style>
|
||||||
*{margin:0;padding:0;box-sizing:border-box}
|
*{margin:0;padding:0;box-sizing:border-box}
|
||||||
:root{
|
:root{
|
||||||
--bg:#f8f9fa;
|
--bg:#f4f1ea;
|
||||||
--surface:#fff;
|
--bg-2:#ece7dc;
|
||||||
--text:#1a1a1a;
|
--ink:#1c1b19;
|
||||||
--text-m:#6b7280;
|
--ink-soft:#56524b;
|
||||||
--text-dim:#9ca3af;
|
--ink-faint:#9a948a;
|
||||||
--border:rgba(0,0,0,0.06);
|
--line:#d8d1c4;
|
||||||
--border-h:rgba(0,0,0,0.1);
|
--accent:#b5462e; /* terracotta — the spark */
|
||||||
--gold:#d4a843;
|
--accent-deep:#8f3320;
|
||||||
--gold-l:#f5e8c8;
|
--gold:#c89b3c; /* ochre — the through-line */
|
||||||
--green:#2d7a47;
|
--card:#fbf9f4;
|
||||||
--green-l:#e8f5ee;
|
--shadow:0 1px 2px rgba(28,27,25,0.04),0 8px 24px rgba(28,27,25,0.05);
|
||||||
--cream:#fdf8f0;
|
--shadow-h:0 2px 4px rgba(28,27,25,0.06),0 16px 40px rgba(28,27,25,0.09);
|
||||||
--shadow:0 1px 3px rgba(0,0,0,0.04),0 1px 2px rgba(0,0,0,0.03);
|
--radius:14px;
|
||||||
--radius:12px;
|
|
||||||
}
|
}
|
||||||
|
html{scroll-behavior:smooth}
|
||||||
body{
|
body{
|
||||||
font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
|
font-family:'Inter',system-ui,sans-serif;
|
||||||
background:var(--bg);
|
background:var(--bg);color:var(--ink);
|
||||||
color:var(--text);
|
-webkit-font-smoothing:antialiased;line-height:1.6;
|
||||||
overflow-x:hidden;
|
overflow-x:hidden;
|
||||||
-webkit-font-smoothing:antialiased;
|
|
||||||
line-height:1.6;
|
|
||||||
}
|
}
|
||||||
::selection{background:rgba(212,168,67,0.2);color:var(--text)}
|
::selection{background:rgba(181,70,46,0.18);color:var(--ink)}
|
||||||
a{color:var(--green);text-decoration:none;transition:color 0.2s}
|
a{color:var(--accent-deep);text-decoration:none;transition:color .2s}
|
||||||
a:hover{color:var(--gold)}
|
a:hover{color:var(--accent)}
|
||||||
|
|
||||||
/* Hero */
|
/* ═══════════ HERO ═══════════ */
|
||||||
.hero{
|
.hero{
|
||||||
min-height:100vh;
|
min-height:100vh;
|
||||||
display:flex;flex-direction:column;justify-content:center;align-items:center;
|
display:flex;flex-direction:column;justify-content:center;
|
||||||
text-align:center;padding:2rem;position:relative;
|
padding:2rem clamp(1.5rem,6vw,8rem);
|
||||||
background:linear-gradient(180deg,var(--cream) 0%,var(--bg) 100%);
|
position:relative;
|
||||||
|
background:
|
||||||
|
radial-gradient(ellipse 80% 60% at 85% 15%,rgba(200,155,60,0.10),transparent 60%),
|
||||||
|
radial-gradient(ellipse 70% 50% at 10% 90%,rgba(181,70,46,0.08),transparent 55%),
|
||||||
|
linear-gradient(160deg,var(--bg) 0%,var(--bg-2) 100%);
|
||||||
}
|
}
|
||||||
.hero::after{
|
.hero .eyebrow{
|
||||||
content:'';position:absolute;bottom:0;left:10%;right:10%;height:1px;
|
font-family:'Inter';font-size:.7rem;font-weight:600;
|
||||||
background:linear-gradient(90deg,transparent,var(--border-h),transparent);
|
letter-spacing:.22em;text-transform:uppercase;color:var(--accent);
|
||||||
|
margin-bottom:1.4rem;display:flex;align-items:center;gap:.7rem;
|
||||||
|
opacity:0;animation:rise .7s ease .1s both;
|
||||||
}
|
}
|
||||||
|
.hero .eyebrow::before{content:'';width:28px;height:2px;background:var(--accent);border-radius:1px}
|
||||||
.hero h1{
|
.hero h1{
|
||||||
font-size:clamp(2.8rem,6vw,5rem);font-weight:800;
|
font-family:'Fraunces',Georgia,serif;
|
||||||
letter-spacing:-0.03em;line-height:1.05;color:var(--text);
|
font-weight:500;font-size:clamp(2.8rem,8vw,6.5rem);
|
||||||
margin-bottom:0.6rem;
|
line-height:.98;letter-spacing:-.02em;color:var(--ink);
|
||||||
|
max-width:13ch;margin-bottom:1.6rem;
|
||||||
|
opacity:0;animation:rise .8s ease .2s both;
|
||||||
}
|
}
|
||||||
.hero h1 span{color:var(--gold)}
|
.hero h1 em{font-style:italic;color:var(--accent);font-weight:600}
|
||||||
.hero .sub{
|
.hero .lede{
|
||||||
font-size:clamp(0.95rem,1.8vw,1.15rem);font-weight:400;
|
font-size:clamp(1rem,2vw,1.25rem);font-weight:400;
|
||||||
color:var(--text-m);max-width:480px;line-height:1.5;margin-bottom:1.5rem;
|
color:var(--ink-soft);max-width:46ch;line-height:1.55;
|
||||||
|
opacity:0;animation:rise .8s ease .35s both;
|
||||||
}
|
}
|
||||||
.hero .tag{
|
.hero .stats{
|
||||||
display:inline-flex;align-items:center;gap:0.4rem;
|
display:flex;flex-wrap:wrap;gap:2.5rem;margin-top:3rem;
|
||||||
background:var(--green-l);color:var(--green);
|
opacity:0;animation:rise .8s ease .5s both;
|
||||||
padding:0.35rem 1rem;border-radius:100px;
|
|
||||||
font-size:0.78rem;font-weight:500;
|
|
||||||
}
|
}
|
||||||
.hero .scroll-hint{
|
.hero .stats .stat .num{
|
||||||
position:absolute;bottom:2.5rem;
|
font-family:'Fraunces',serif;font-size:2.2rem;font-weight:600;color:var(--ink);
|
||||||
color:var(--text-dim);font-size:0.7rem;
|
line-height:1;
|
||||||
display:flex;flex-direction:column;align-items:center;gap:0.35rem;
|
|
||||||
letter-spacing:0.04em;text-transform:uppercase;
|
|
||||||
cursor:pointer;transition:color 0.2s;
|
|
||||||
}
|
}
|
||||||
.hero .scroll-hint:hover{color:var(--text-m)}
|
.hero .stats .stat .num span{color:var(--accent)}
|
||||||
.hero .scroll-hint .chev{width:16px;height:16px;animation:bounce 2s ease-in-out infinite}
|
.hero .stats .stat .lbl{
|
||||||
|
font-size:.72rem;color:var(--ink-faint);letter-spacing:.04em;margin-top:.35rem;font-weight:500;
|
||||||
|
}
|
||||||
|
.hero .scroll-cue{
|
||||||
|
position:absolute;bottom:2.2rem;left:clamp(1.5rem,6vw,8rem);
|
||||||
|
font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);
|
||||||
|
display:flex;align-items:center;gap:.5rem;cursor:pointer;transition:color .2s;
|
||||||
|
}
|
||||||
|
.hero .scroll-cue:hover{color:var(--accent)}
|
||||||
|
.hero .scroll-cue .dash{width:30px;height:1px;background:currentColor;display:inline-block;animation:slide 2s ease-in-out infinite}
|
||||||
|
|
||||||
/* Timeline wrapper */
|
/* ═══════════ TIMELINE ═══════════ */
|
||||||
.timeline-wrapper{max-width:880px;margin:0 auto;padding:0 1.5rem 4rem}
|
.wrap{max-width:960px;margin:0 auto;padding:5rem 1.5rem 6rem}
|
||||||
|
.section-label{
|
||||||
|
font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
|
||||||
|
color:var(--ink-faint);text-align:center;margin-bottom:.5rem;
|
||||||
|
}
|
||||||
|
.section-sub{
|
||||||
|
font-family:'Fraunces',serif;font-style:italic;font-size:1.3rem;color:var(--ink-soft);
|
||||||
|
text-align:center;margin-bottom:3.5rem;max-width:30ch;margin-left:auto;margin-right:auto;line-height:1.4;
|
||||||
|
}
|
||||||
|
|
||||||
/* Present banner */
|
.timeline{position:relative}
|
||||||
.present-banner{
|
.timeline::before{
|
||||||
background:var(--cream);
|
content:'';position:absolute;left:50%;top:8px;bottom:8px;width:2px;
|
||||||
border:1px solid var(--border);
|
background:linear-gradient(to bottom,transparent,var(--line) 6%,var(--line) 94%,transparent);
|
||||||
border-radius:var(--radius);
|
|
||||||
padding:1.5rem 2rem;margin:3rem auto;
|
|
||||||
max-width:680px;text-align:center;position:relative;
|
|
||||||
box-shadow:var(--shadow);
|
|
||||||
}
|
|
||||||
.present-banner::before{
|
|
||||||
content:'';position:absolute;top:0;left:2rem;right:2rem;height:2px;
|
|
||||||
background:linear-gradient(90deg,transparent,var(--gold),transparent);
|
|
||||||
border-radius:1px;
|
|
||||||
}
|
|
||||||
.present-banner .label{
|
|
||||||
font-size:0.65rem;text-transform:uppercase;letter-spacing:0.12em;
|
|
||||||
color:var(--gold);font-weight:600;margin-bottom:0.25rem;
|
|
||||||
}
|
|
||||||
.present-banner .label .dot{
|
|
||||||
display:inline-block;width:6px;height:6px;background:var(--gold);
|
|
||||||
border-radius:50%;margin-right:0.3rem;vertical-align:middle;
|
|
||||||
animation:pulse 2s ease-in-out infinite;
|
|
||||||
}
|
|
||||||
.present-banner h2{font-size:1.2rem;font-weight:600;color:var(--text);margin-bottom:0.2rem}
|
|
||||||
.present-banner p{font-size:0.82rem;color:var(--text-m);line-height:1.55;max-width:560px;margin:0 auto}
|
|
||||||
|
|
||||||
/* Timeline */
|
|
||||||
.timeline{position:relative;padding-top:1rem}
|
|
||||||
|
|
||||||
/* The vertical line */
|
|
||||||
.timeline-line{
|
|
||||||
position:absolute;left:50%;top:0;bottom:0;
|
|
||||||
width:2px;
|
|
||||||
background:linear-gradient(to bottom,var(--gold-l),var(--gold),var(--gold-l));
|
|
||||||
transform:translateX(-50%);
|
transform:translateX(-50%);
|
||||||
}
|
}
|
||||||
|
/* progress fill that grows on scroll */
|
||||||
/* Items */
|
.timeline .progress{
|
||||||
.timeline-item{
|
content:'';position:absolute;left:50%;top:8px;width:2px;height:0;
|
||||||
position:relative;
|
background:linear-gradient(to bottom,var(--accent),var(--gold));
|
||||||
margin-bottom:2.5rem;
|
transform:translateX(-50%);z-index:1;border-radius:2px;
|
||||||
opacity:0;
|
transition:height .15s linear;
|
||||||
transform:translateY(30px);
|
|
||||||
transition:opacity 0.7s ease,transform 0.7s cubic-bezier(0.22,1,0.36,1);
|
|
||||||
}
|
|
||||||
.timeline-item.visible{opacity:1;transform:translateY(0)}
|
|
||||||
.timeline-item:nth-child(odd) .timeline-card{margin-left:auto}
|
|
||||||
|
|
||||||
/* Dot */
|
|
||||||
.timeline-dot{
|
|
||||||
position:absolute;left:50%;top:1.8rem;
|
|
||||||
width:14px;height:14px;
|
|
||||||
background:var(--gold);
|
|
||||||
border:2px solid var(--bg);
|
|
||||||
border-radius:50%;
|
|
||||||
transform:translateX(-50%);
|
|
||||||
z-index:2;
|
|
||||||
transition:transform 0.3s ease,box-shadow 0.3s ease;
|
|
||||||
box-shadow:0 0 0 0 var(--gold-l);
|
|
||||||
}
|
|
||||||
.timeline-item.visible .timeline-dot{
|
|
||||||
transform:translateX(-50%) scale(1.15);
|
|
||||||
box-shadow:0 0 0 6px rgba(212,168,67,0.15);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Card */
|
.item{position:relative;margin-bottom:2.2rem;display:flex;width:100%}
|
||||||
.timeline-card{
|
.item:nth-child(odd){justify-content:flex-start}
|
||||||
width:calc(50% - 36px);
|
.item:nth-child(even){justify-content:flex-end}
|
||||||
background:var(--surface);
|
|
||||||
border:1px solid var(--border);
|
|
||||||
border-radius:var(--radius);
|
|
||||||
padding:1.3rem 1.5rem;
|
|
||||||
cursor:pointer;
|
|
||||||
transition:border-color 0.25s ease,box-shadow 0.25s ease,transform 0.25s ease;
|
|
||||||
position:relative;
|
|
||||||
box-shadow:var(--shadow);
|
|
||||||
}
|
|
||||||
.timeline-card:hover{
|
|
||||||
border-color:var(--border-h);
|
|
||||||
box-shadow:0 4px 12px rgba(0,0,0,0.06),0 1px 3px rgba(0,0,0,0.04);
|
|
||||||
transform:translateY(-1px);
|
|
||||||
}
|
|
||||||
.timeline-card:active{transform:translateY(0)}
|
|
||||||
|
|
||||||
/* Connector arrows */
|
.node{
|
||||||
.timeline-item:nth-child(odd) .timeline-card::after{
|
position:absolute;left:50%;top:2.1rem;width:16px;height:16px;
|
||||||
content:'';position:absolute;top:1.6rem;left:-7px;
|
transform:translateX(-50%);border-radius:50%;
|
||||||
border:7px solid transparent;border-right-color:var(--border);
|
background:var(--card);border:2px solid var(--line);z-index:3;
|
||||||
z-index:1;
|
transition:all .4s cubic-bezier(.22,1,.36,1);
|
||||||
}
|
|
||||||
.timeline-item:nth-child(even) .timeline-card::after{
|
|
||||||
content:'';position:absolute;top:1.6rem;right:-7px;
|
|
||||||
border:7px solid transparent;border-left-color:var(--border);
|
|
||||||
z-index:1;
|
|
||||||
}
|
}
|
||||||
|
.item.in .node{border-color:var(--accent);background:var(--accent);
|
||||||
|
box-shadow:0 0 0 5px rgba(181,70,46,.14),0 0 14px rgba(181,70,46,.25)}
|
||||||
|
|
||||||
/* Card content */
|
.card{
|
||||||
.timeline-card .date{
|
width:calc(50% - 44px);background:var(--card);border:1px solid var(--line);
|
||||||
font-size:0.68rem;font-weight:600;color:var(--gold);
|
border-radius:var(--radius);padding:1.5rem 1.6rem;cursor:pointer;
|
||||||
text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.2rem;
|
box-shadow:var(--shadow);position:relative;
|
||||||
|
opacity:0;transform:translateY(28px);
|
||||||
|
transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),
|
||||||
|
box-shadow .3s ease,border-color .3s ease;
|
||||||
}
|
}
|
||||||
.timeline-card .role{
|
.item.in .card{opacity:1;transform:translateY(0)}
|
||||||
font-size:1.05rem;font-weight:600;color:var(--text);
|
.card:hover{box-shadow:var(--shadow-h);border-color:#c9c0b0}
|
||||||
margin-bottom:0.05rem;letter-spacing:-0.01em;
|
/* connector */
|
||||||
|
.item:nth-child(odd) .card::after,.item:nth-child(even) .card::after{
|
||||||
|
content:'';position:absolute;top:2rem;width:32px;height:2px;background:var(--line);
|
||||||
}
|
}
|
||||||
.timeline-card .company{
|
.item:nth-child(odd) .card::after{right:-32px}
|
||||||
font-size:0.85rem;font-weight:500;color:var(--green);margin-bottom:0.1rem;
|
.item:nth-child(even) .card::after{left:-32px}
|
||||||
}
|
|
||||||
.timeline-card .location{
|
|
||||||
font-size:0.7rem;color:var(--text-dim);margin-bottom:0.5rem;
|
|
||||||
}
|
|
||||||
.timeline-card .summary{
|
|
||||||
font-size:0.8rem;color:var(--text-m);line-height:1.55;margin-bottom:0.4rem;
|
|
||||||
}
|
|
||||||
.timeline-card .expand-btn{
|
|
||||||
font-size:0.72rem;font-weight:500;color:var(--green);
|
|
||||||
cursor:pointer;display:inline-flex;align-items:center;gap:0.3rem;
|
|
||||||
border:none;background:none;padding:0;
|
|
||||||
transition:color 0.2s;
|
|
||||||
}
|
|
||||||
.timeline-card .expand-btn:hover{color:var(--gold)}
|
|
||||||
.timeline-card .expand-btn .arrow{
|
|
||||||
display:inline-block;font-size:0.55rem;
|
|
||||||
transition:transform 0.25s ease;
|
|
||||||
}
|
|
||||||
.timeline-card .expand-btn.open .arrow{transform:rotate(180deg)}
|
|
||||||
|
|
||||||
.timeline-card .details{
|
.card .yr{
|
||||||
max-height:0;overflow:hidden;
|
font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
|
||||||
transition:max-height 0.4s ease,opacity 0.3s ease;
|
color:var(--accent);margin-bottom:.35rem;display:flex;align-items:center;gap:.5rem;
|
||||||
opacity:0;
|
|
||||||
}
|
}
|
||||||
.timeline-card .details.open{max-height:2000px;opacity:1}
|
.card .yr .seg{width:18px;height:2px;background:var(--gold);border-radius:1px}
|
||||||
.timeline-card .details ul{
|
.card .role{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;color:var(--ink);line-height:1.2;margin-bottom:.1rem}
|
||||||
list-style:none;padding:0.6rem 0 0;margin-top:0.5rem;
|
.card .co{font-size:.85rem;font-weight:600;color:var(--ink-soft);margin-bottom:.1rem}
|
||||||
border-top:1px solid var(--border);
|
.card .loc{font-size:.72rem;color:var(--ink-faint);margin-bottom:.6rem}
|
||||||
|
.card .sum{font-size:.82rem;color:var(--ink-soft);line-height:1.55;margin-bottom:.5rem}
|
||||||
|
.card .btn{
|
||||||
|
font-size:.72rem;font-weight:600;color:var(--accent);background:none;border:none;
|
||||||
|
padding:0;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:color .2s;
|
||||||
}
|
}
|
||||||
.timeline-card .details ul li{
|
.card .btn:hover{color:var(--accent-deep)}
|
||||||
padding:0.25rem 0;font-size:0.78rem;color:var(--text-m);
|
.card .btn .ar{transition:transform .25s ease;font-size:.6rem}
|
||||||
line-height:1.5;padding-left:1rem;position:relative;
|
.card .btn.open .ar{transform:rotate(180deg)}
|
||||||
}
|
.card .details{max-height:0;overflow:hidden;transition:max-height .45s ease,opacity .3s ease;opacity:0}
|
||||||
.timeline-card .details ul li::before{
|
.card .details.open{max-height:1600px;opacity:1}
|
||||||
content:'→';position:absolute;left:0;color:var(--gold);font-size:0.65rem;
|
.card .details ul{list-style:none;padding:1rem 0 0;margin-top:.5rem;border-top:1px solid var(--line)}
|
||||||
}
|
.card .details li{font-size:.78rem;color:var(--ink-soft);line-height:1.5;padding:.28rem 0 .28rem 1.1rem;position:relative}
|
||||||
.timeline-card .details .tags{
|
.card .details li::before{content:'';position:absolute;left:0;top:.72rem;width:5px;height:5px;border-radius:50%;background:var(--accent)}
|
||||||
display:flex;flex-wrap:wrap;gap:0.3rem;padding-top:0.6rem;margin-top:0.5rem;
|
.card .tags{display:flex;flex-wrap:wrap;gap:.3rem;padding-top:.7rem;margin-top:.5rem;border-top:1px solid var(--line)}
|
||||||
border-top:1px solid var(--border);
|
.card .tags span{background:rgba(200,155,60,.12);color:var(--accent-deep);font-size:.62rem;font-weight:600;padding:.18rem .55rem;border-radius:100px;letter-spacing:.02em}
|
||||||
}
|
|
||||||
.timeline-card .details .tags span{
|
|
||||||
background:var(--green-l);color:var(--green);
|
|
||||||
font-size:0.64rem;padding:0.15rem 0.5rem;border-radius:100px;
|
|
||||||
font-weight:500;
|
|
||||||
}
|
|
||||||
.timeline-item:last-child{margin-bottom:0}
|
|
||||||
|
|
||||||
/* Education */
|
/* ═══════════ PRESENT BANNER ═══════════ */
|
||||||
.edu-section{max-width:680px;margin:4rem auto;padding:0 1.5rem}
|
.present{
|
||||||
.edu-section h2{
|
max-width:680px;margin:0 auto 4rem;text-align:center;
|
||||||
font-size:0.7rem;font-weight:600;color:var(--text-dim);
|
background:linear-gradient(135deg,var(--card),#fff);
|
||||||
text-align:center;margin-bottom:1.25rem;
|
border:1px solid var(--line);border-radius:18px;padding:2rem 2rem 1.8rem;
|
||||||
text-transform:uppercase;letter-spacing:0.1em;
|
box-shadow:var(--shadow);position:relative;overflow:hidden;
|
||||||
}
|
}
|
||||||
|
.present::before{content:'';position:absolute;top:0;left:18%;right:18%;height:2px;
|
||||||
|
background:linear-gradient(90deg,transparent,var(--accent),transparent);border-radius:1px}
|
||||||
|
.present .tag{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--accent);margin-bottom:.5rem;display:flex;align-items:center;justify-content:center;gap:.4rem}
|
||||||
|
.present .tag .d{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.2s ease-in-out infinite}
|
||||||
|
.present h2{font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;color:var(--ink);margin-bottom:.4rem}
|
||||||
|
.present p{font-size:.9rem;color:var(--ink-soft);line-height:1.6;max-width:48ch;margin:0 auto}
|
||||||
|
|
||||||
|
/* ═══════════ CAPABILITIES ═══════════ */
|
||||||
|
.caps{max-width:760px;margin:5rem auto 0;padding:0 1.5rem}
|
||||||
|
.caps h2{font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;color:var(--ink);text-align:center;margin-bottom:1.8rem}
|
||||||
|
.caps-grid{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center}
|
||||||
|
.cap{
|
||||||
|
background:var(--card);border:1px solid var(--line);border-radius:100px;
|
||||||
|
padding:.5rem 1.1rem;font-size:.78rem;font-weight:500;color:var(--ink-soft);
|
||||||
|
box-shadow:var(--shadow);opacity:0;transform:translateY(12px) scale(.96);
|
||||||
|
transition:opacity .4s ease,transform .4s ease,border-color .2s,color .2s;
|
||||||
|
}
|
||||||
|
.cap.in{opacity:1;transform:none}
|
||||||
|
.cap:hover{border-color:var(--accent);color:var(--accent-deep)}
|
||||||
|
|
||||||
|
.edu{max-width:760px;margin:4rem auto 0;padding:0 1.5rem}
|
||||||
|
.edu h2{font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;color:var(--ink);text-align:center;margin-bottom:1.8rem}
|
||||||
.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
|
.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
|
||||||
.edu-card{
|
.edu-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1.3rem 1.4rem;box-shadow:var(--shadow);opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
|
||||||
background:var(--surface);border:1px solid var(--border);border-radius:10px;
|
.edu-card.in{opacity:1;transform:none}
|
||||||
padding:1.1rem 1.2rem;
|
.edu-card h3{font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:var(--ink);margin-bottom:.3rem}
|
||||||
opacity:0;transform:translateY(15px);
|
.edu-card .d{font-size:.8rem;color:var(--ink-soft);margin-bottom:.2rem}
|
||||||
transition:opacity 0.5s ease,transform 0.5s ease;
|
.edu-card .y{font-size:.7rem;font-weight:600;color:var(--gold);letter-spacing:.03em}
|
||||||
box-shadow:var(--shadow);
|
|
||||||
}
|
|
||||||
.edu-card.visible{opacity:1;transform:translateY(0)}
|
|
||||||
.edu-card h3{font-size:0.85rem;font-weight:600;color:var(--text);margin-bottom:0.1rem}
|
|
||||||
.edu-card .detail{font-size:0.75rem;color:var(--text-m);margin-bottom:0.1rem}
|
|
||||||
.edu-card .year{font-size:0.65rem;color:var(--green);font-weight:500}
|
|
||||||
|
|
||||||
/* Skills sections */
|
.footer{text-align:center;padding:3rem 1.5rem 2rem;color:var(--ink-faint);font-size:.72rem;border-top:1px solid var(--line);max-width:760px;margin:4rem auto 0}
|
||||||
.skills-section{max-width:680px;margin:0 auto 4rem;padding:0 1.5rem}
|
.footer a{color:var(--accent-deep)}
|
||||||
.skills-section h2{
|
|
||||||
font-size:0.7rem;font-weight:600;color:var(--text-dim);
|
|
||||||
text-align:center;margin-bottom:1.25rem;
|
|
||||||
text-transform:uppercase;letter-spacing:0.1em;
|
|
||||||
}
|
|
||||||
.skills-grid{display:flex;flex-wrap:wrap;gap:0.4rem;justify-content:center}
|
|
||||||
.skill-tag{
|
|
||||||
background:var(--surface);border:1px solid var(--border);
|
|
||||||
border-radius:100px;padding:0.3rem 0.9rem;
|
|
||||||
font-size:0.72rem;font-weight:400;color:var(--text-m);
|
|
||||||
opacity:0;transform:scale(0.92);
|
|
||||||
transition:opacity 0.35s ease,transform 0.35s ease,border-color 0.2s,color 0.2s;
|
|
||||||
box-shadow:var(--shadow);
|
|
||||||
}
|
|
||||||
.skill-tag.visible{opacity:1;transform:scale(1)}
|
|
||||||
.skill-tag:hover{border-color:var(--green);color:var(--green)}
|
|
||||||
.skill-tag:nth-child(1){transition-delay:0s}
|
|
||||||
.skill-tag:nth-child(2){transition-delay:0.03s}
|
|
||||||
.skill-tag:nth-child(3){transition-delay:0.06s}
|
|
||||||
.skill-tag:nth-child(4){transition-delay:0.09s}
|
|
||||||
.skill-tag:nth-child(5){transition-delay:0.12s}
|
|
||||||
.skill-tag:nth-child(6){transition-delay:0.15s}
|
|
||||||
.skill-tag:nth-child(7){transition-delay:0.18s}
|
|
||||||
.skill-tag:nth-child(8){transition-delay:0.21s}
|
|
||||||
.skill-tag:nth-child(9){transition-delay:0.24s}
|
|
||||||
.skill-tag:nth-child(10){transition-delay:0.27s}
|
|
||||||
|
|
||||||
/* Footer */
|
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
|
||||||
.footer{
|
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
|
||||||
text-align:center;padding:2rem;color:var(--text-dim);
|
@keyframes slide{0%,100%{transform:translateX(0);opacity:.4}50%{transform:translateX(6px);opacity:1}}
|
||||||
font-size:0.7rem;border-top:1px solid var(--border);
|
|
||||||
max-width:680px;margin:0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Animations */
|
|
||||||
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
|
|
||||||
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.35}}
|
|
||||||
|
|
||||||
/* Reduced motion */
|
|
||||||
@media(prefers-reduced-motion:reduce){
|
@media(prefers-reduced-motion:reduce){
|
||||||
*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important}
|
*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
|
||||||
.timeline-item{opacity:1!important;transform:none!important}
|
.card,.cap,.edu-card{opacity:1!important;transform:none!important}
|
||||||
.skill-tag,.edu-card{opacity:1!important;transform:none!important}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Mobile */
|
|
||||||
@media(max-width:700px){
|
|
||||||
.timeline-line{left:18px}
|
|
||||||
.timeline-dot{left:18px;width:12px;height:12px}
|
|
||||||
.timeline-card{width:calc(100% - 48px);margin-left:44px!important}
|
|
||||||
.timeline-item:nth-child(odd) .timeline-card::after,
|
|
||||||
.timeline-item:nth-child(even) .timeline-card::after{
|
|
||||||
left:-7px;border:7px solid transparent;border-right-color:var(--border);right:auto;
|
|
||||||
}
|
}
|
||||||
|
@media(max-width:720px){
|
||||||
|
.timeline::before,.timeline .progress{left:15px}
|
||||||
|
.node{left:15px}
|
||||||
|
.item,.item:nth-child(even){justify-content:flex-end}
|
||||||
|
.card{width:calc(100% - 42px);margin-left:auto}
|
||||||
|
.item:nth-child(odd) .card::after,.item:nth-child(even) .card::after{left:auto;right:calc(100% - 42px);width:27px}
|
||||||
.edu-grid{grid-template-columns:1fr}
|
.edu-grid{grid-template-columns:1fr}
|
||||||
.present-banner{padding:1.2rem 1.3rem}
|
.hero .stats{gap:1.6rem}
|
||||||
.timeline-card{padding:1.1rem 1.2rem}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<!-- Hero -->
|
|
||||||
<section class="hero">
|
<section class="hero">
|
||||||
<h1>Career <span>Arc</span></h1>
|
<div class="eyebrow">Marketing & Communications · Perth</div>
|
||||||
<p class="sub">Marketing & communications · Energy transition · Perth, WA</p>
|
<h1>Fifteen years of making energy <em>make sense</em>.</h1>
|
||||||
<div class="tag">15+ years · 3 companies · 6 roles</div>
|
<p class="lede">From billing enquiries to national EV rollouts — a career spent turning complex infrastructure into stories people actually understand.</p>
|
||||||
<div class="scroll-hint" onclick="document.querySelector('.present-banner')?.scrollIntoView({behavior:'smooth'})">
|
<div class="stats">
|
||||||
<svg class="chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M7 13l5 5 5-5M7 6l5 5 5-5"/></svg>
|
<div class="stat"><div class="num">15<span>+</span></div><div class="lbl">Years in market</div></div>
|
||||||
<span>Explore</span>
|
<div class="stat"><div class="num">3</div><div class="lbl">Energy companies</div></div>
|
||||||
|
<div class="stat"><div class="num">$2M<span>+</span></div><div class="lbl">Annual budgets led</div></div>
|
||||||
|
<div class="stat"><div class="num">6</div><div class="lbl">Distinct roles</div></div>
|
||||||
|
</div>
|
||||||
|
<div class="scroll-cue" onclick="document.getElementById('arc').scrollIntoView()">
|
||||||
|
<span class="dash"></span> The arc
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div class="timeline-wrapper">
|
<div class="wrap">
|
||||||
|
<div id="arc">
|
||||||
|
<div class="section-label">The Career Arc</div>
|
||||||
|
<div class="section-sub">One through-line: customer → product → brand → transition</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- Present -->
|
<div class="present">
|
||||||
<div class="present-banner" style="opacity:0;animation:fadeUp 0.8s ease 0.4s both">
|
<div class="tag"><span class="d"></span> Now</div>
|
||||||
<div class="label"><span class="dot"></span>Present</div>
|
<h2>Open to what's next</h2>
|
||||||
<h2>Open to Opportunities</h2>
|
<p>Just wrapped a Marketing Advisor role at Pacific Energy. Looking for corporate marketing, communications and digital strategy roles across Perth and WA.</p>
|
||||||
<p>Recently finished a Marketing Advisor role at Pacific Energy. Actively exploring corporate marketing, communications and digital strategy roles in Perth and across WA.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="timeline" id="timeline">
|
<div class="timeline" id="timeline">
|
||||||
|
<div class="progress" id="progress"></div>
|
||||||
|
|
||||||
<div class="timeline-line"></div>
|
<!-- 1 -->
|
||||||
|
<div class="item">
|
||||||
<!-- 1. Pacific Energy -->
|
<div class="node"></div>
|
||||||
<div class="timeline-item" data-idx="1">
|
<div class="card" onclick="toggle(this)">
|
||||||
<div class="timeline-dot"></div>
|
<div class="yr"><span class="seg"></span> Jun 2025 – Jul 2026</div>
|
||||||
<div class="timeline-card" onclick="toggleDetails(this)">
|
|
||||||
<div class="date">Jun 2025 – Jul 2026</div>
|
|
||||||
<div class="role">Marketing Advisor</div>
|
<div class="role">Marketing Advisor</div>
|
||||||
<div class="company">Pacific Energy</div>
|
<div class="co">Pacific Energy</div>
|
||||||
<div class="location">Kewdale, Perth WA</div>
|
<div class="loc">Kewdale, Perth WA</div>
|
||||||
<div class="summary">Corporate marketing, digital content, technical communications, major events and marketing AI strategy for a leading energy infrastructure company.</div>
|
<div class="sum">Corporate marketing, digital content, technical communications, major events and the company's marketing AI strategy.</div>
|
||||||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
<button class="btn"><span class="ar">▾</span> <span class="lb">What I delivered</span></button>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Developed and rolled out a social media strategy and capability content series across LinkedIn and corporate channels</li>
|
<li>Built and rolled out a social strategy + capability content series across LinkedIn and corporate channels</li>
|
||||||
<li>Defined Pacific Energy's marketing AI strategy and identified practical applications across content, digital workflows and operations</li>
|
<li>Defined Pacific Energy's marketing AI strategy, mapping practical use across content, digital and operations</li>
|
||||||
<li>Led marketing collaboration on the corporate website, named Science and Sustainability Website of the Year at the 2026 Australian Web Awards</li>
|
<li>Led marketing on the corporate website — named Science & Sustainability Website of the Year, 2026 Australian Web Awards</li>
|
||||||
<li>End-to-end marketing delivery for Australian Clean Energy Summit and Pilbara Summit — sponsorship activation, creative, content, logistics</li>
|
<li>End-to-end delivery for the Australian Clean Energy Summit & Pilbara Summit — activation, creative, content, logistics</li>
|
||||||
<li>Translated complex project information into executive comms covering battery storage, remote power, hybrid systems</li>
|
<li>Translated complex projects (battery storage, remote power, hybrids) into clear executive comms</li>
|
||||||
<li>Maintained brand voice and visual standards across digital, print, signage, social and event channels</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tags">
|
<div class="tags"><span>B2B Marketing</span><span>AI Strategy</span><span>Web Awards</span><span>Events</span></div>
|
||||||
<span>B2B Marketing</span><span>AI Strategy</span><span>Web Awards</span><span>Event Management</span><span>Corporate Comms</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 2. Horizon Power -->
|
<!-- 2 -->
|
||||||
<div class="timeline-item" data-idx="2">
|
<div class="item">
|
||||||
<div class="timeline-dot"></div>
|
<div class="node"></div>
|
||||||
<div class="timeline-card" onclick="toggleDetails(this)">
|
<div class="card" onclick="toggle(this)">
|
||||||
<div class="date">2019 – Sep 2024</div>
|
<div class="yr"><span class="seg"></span> 2019 – Sep 2024</div>
|
||||||
<div class="role">Marketing Specialist</div>
|
<div class="role">Marketing Specialist</div>
|
||||||
<div class="company">Horizon Power</div>
|
<div class="co">Horizon Power</div>
|
||||||
<div class="location">Perth, WA</div>
|
<div class="loc">Perth, WA</div>
|
||||||
<div class="summary">Integrated marketing, regulated communications, customer engagement and energy transition programs across WA's regional energy provider.</div>
|
<div class="sum">Integrated marketing, regulated communications and customer engagement across WA's regional energy provider.</div>
|
||||||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
<button class="btn"><span class="ar">▾</span> <span class="lb">What I delivered</span></button>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Led integrated marketing and customer communication campaigns across digital, social, email, direct mail, television, print and community channels</li>
|
<li>Led integrated campaigns across digital, social, email, mail, TV, print and community</li>
|
||||||
<li>Managed annual marketing budgets exceeding $2 million, using research and audience segmentation to prioritise investment</li>
|
<li>Managed $2M+ annual budgets, using research and segmentation to prioritise spend</li>
|
||||||
<li>Led marketing for the WA EV Network — the state's electric vehicle charging infrastructure rollout</li>
|
<li>Marketing lead on the WA EV Network — the state's charging infrastructure rollout</li>
|
||||||
<li>Supported launch of Smart Connect Solar and other distributed energy initiatives</li>
|
<li>Supported Smart Connect Solar and other distributed-energy launches</li>
|
||||||
<li>Directed compliance-critical communications for government price changes, energy concessions and cost-of-living initiatives</li>
|
<li>Directed compliance-critical comms for price changes, concessions and cost-of-living</li>
|
||||||
<li>Created the Bright Horizons STEM program, providing solar-powered education kits to remote schools</li>
|
<li>Created Bright Horizons STEM — solar education kits for remote schools</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tags">
|
<div class="tags"><span>Campaigns</span><span>$2M+ Budget</span><span>WA EV Network</span><span>Energy Transition</span></div>
|
||||||
<span>Integrated Campaigns</span><span>$2M+ Budget</span><span>WA EV Network</span><span>Energy Transition</span><span>Regulatory Comms</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 3. Synergy: Energy Solutions Marketing Specialist -->
|
<!-- 3 -->
|
||||||
<div class="timeline-item" data-idx="3">
|
<div class="item">
|
||||||
<div class="timeline-dot"></div>
|
<div class="node"></div>
|
||||||
<div class="timeline-card" onclick="toggleDetails(this)">
|
<div class="card" onclick="toggle(this)">
|
||||||
<div class="date">2015 – 2018</div>
|
<div class="yr"><span class="seg"></span> 2015 – 2018</div>
|
||||||
<div class="role">Energy Solutions Marketing Specialist</div>
|
<div class="role">Energy Solutions Marketing Specialist</div>
|
||||||
<div class="company">Synergy</div>
|
<div class="co">Synergy</div>
|
||||||
<div class="location">Perth, WA</div>
|
<div class="loc">Perth, WA</div>
|
||||||
<div class="summary">Commercial growth and customer experience across renewable energy products, digital channels and agency management.</div>
|
<div class="sum">Commercial growth and customer experience across renewable products, digital channels and agency management.</div>
|
||||||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
<button class="btn"><span class="ar">▾</span> <span class="lb">What I delivered</span></button>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Led development of the SolarReturn proposition from research through launch, contributing to a 40% sales increase in year one</li>
|
<li>Led SolarReturn from research to launch — 40% sales lift in year one</li>
|
||||||
<li>Managed three-plus creative, digital and media agencies, improving conversion rates by 35% through iterative optimisation</li>
|
<li>Managed 3+ agencies; lifted conversion 35% through iterative optimisation</li>
|
||||||
<li>Mapped the end-to-end solar customer journey, reducing inquiry-to-sale timeframes by 20%</li>
|
<li>Mapped the solar customer journey, cutting inquiry-to-sale time by 20%</li>
|
||||||
<li>Converted renewable energy policy, rebates and feed-in tariffs into accessible customer communications across TV, radio, outdoor, social, email and SMS</li>
|
<li>Turned policy, rebates and feed-in tariffs into accessible comms (TV, radio, OOH, social, email, SMS)</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tags">
|
<div class="tags"><span>Product Launch</span><span>SolarReturn</span><span>Agency Mgmt</span><span>CRO</span></div>
|
||||||
<span>Product Launch</span><span>SolarReturn</span><span>Agency Management</span><span>Conversion Optimisation</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 4. Synergy: Business Segment Coordinator -->
|
<!-- 4 -->
|
||||||
<div class="timeline-item" data-idx="4">
|
<div class="item">
|
||||||
<div class="timeline-dot"></div>
|
<div class="node"></div>
|
||||||
<div class="timeline-card" onclick="toggleDetails(this)">
|
<div class="card" onclick="toggle(this)">
|
||||||
<div class="date">2014 – 2015</div>
|
<div class="yr"><span class="seg"></span> 2014 – 2015</div>
|
||||||
<div class="role">Business Segment Coordinator</div>
|
<div class="role">Business Segment Coordinator</div>
|
||||||
<div class="company">Synergy</div>
|
<div class="co">Synergy</div>
|
||||||
<div class="location">Perth, WA</div>
|
<div class="loc">Perth, WA</div>
|
||||||
<div class="summary">Financial and portfolio management, enterprise communications and cross-functional coordination.</div>
|
<div class="sum">Financial and portfolio management, enterprise comms and cross-functional coordination.</div>
|
||||||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
<button class="btn"><span class="ar">▾</span> <span class="lb">What I delivered</span></button>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Managed Synergy's streetlighting portfolio and resolved $1.3 million in billing discrepancies through detailed contract and process reviews</li>
|
<li>Ran the streetlighting portfolio; resolved $1.3M in billing discrepancies</li>
|
||||||
<li>Introduced stronger reconciliation controls and led cross-functional input into the Annual Review of Products and Pricing</li>
|
<li>Introduced stronger reconciliation controls; fed the Annual Review of Products & Pricing</li>
|
||||||
<li>Developed a company-wide communications framework across email, SMS and print for 1M+ customers</li>
|
<li>Built a company-wide comms framework (email, SMS, print) for 1M+ customers</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tags">
|
<div class="tags"><span>Financial Mgmt</span><span>Billing</span><span>Enterprise Comms</span></div>
|
||||||
<span>Financial Management</span><span>Billing Resolution</span><span>Enterprise Comms</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 5. Synergy: Assistant Product Manager -->
|
<!-- 5 -->
|
||||||
<div class="timeline-item" data-idx="5">
|
<div class="item">
|
||||||
<div class="timeline-dot"></div>
|
<div class="node"></div>
|
||||||
<div class="timeline-card" onclick="toggleDetails(this)">
|
<div class="card" onclick="toggle(this)">
|
||||||
<div class="date">2012 – 2014</div>
|
<div class="yr"><span class="seg"></span> 2012 – 2014</div>
|
||||||
<div class="role">Assistant Product Manager, Industrial & Commercial</div>
|
<div class="role">Assistant Product Manager</div>
|
||||||
<div class="company">Synergy</div>
|
<div class="co">Synergy · Industrial & Commercial</div>
|
||||||
<div class="location">Perth, WA</div>
|
<div class="loc">Perth, WA</div>
|
||||||
<div class="summary">Product and sales development for commercial renewable energy products, digital sales platforms and training.</div>
|
<div class="sum">Product and sales development for commercial renewable energy products and digital sales platforms.</div>
|
||||||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
<button class="btn"><span class="ar">▾</span> <span class="lb">What I delivered</span></button>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Developed and launched the Synergy Sellback Program, enabling commercial customers to receive value from exported renewable energy</li>
|
<li>Launched the Synergy Sellback Program — value for exported commercial renewables</li>
|
||||||
<li>Created an online sales platform with pricing calculators and training material</li>
|
<li>Built an online sales platform with calculators and training</li>
|
||||||
<li>Supported sales performance 150% above target through platform and training initiatives</li>
|
<li>Drove sales performance 150% above target</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tags">
|
<div class="tags"><span>Product</span><span>Sellback</span><span>Digital Platform</span><span>Sales</span></div>
|
||||||
<span>Product Development</span><span>Sellback Program</span><span>Digital Platform</span><span>Sales Enablement</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 6. Synergy: Billing Officer -->
|
<!-- 6 -->
|
||||||
<div class="timeline-item" data-idx="6">
|
<div class="item">
|
||||||
<div class="timeline-dot"></div>
|
<div class="node"></div>
|
||||||
<div class="timeline-card" onclick="toggleDetails(this)">
|
<div class="card" onclick="toggle(this)">
|
||||||
<div class="date">2010 – 2012</div>
|
<div class="yr"><span class="seg"></span> 2010 – 2012</div>
|
||||||
<div class="role">Billing Officer</div>
|
<div class="role">Billing Officer</div>
|
||||||
<div class="company">Synergy</div>
|
<div class="co">Synergy</div>
|
||||||
<div class="location">Perth, WA</div>
|
<div class="loc">Perth, WA</div>
|
||||||
<div class="summary">Customer billing, enquiry management, dispute resolution and data accuracy in a regulated energy retail environment.</div>
|
<div class="sum">Customer billing, enquiry management and dispute resolution in a regulated retail environment.</div>
|
||||||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
<button class="btn"><span class="ar">▾</span> <span class="lb">What I delivered</span></button>
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<ul>
|
<ul>
|
||||||
<li>Managed billing enquiries, account corrections and dispute resolution for residential and small business customers</li>
|
<li>Managed billing enquiries, corrections and disputes for residential & SME customers</li>
|
||||||
<li>Ensured data accuracy and compliance in a regulated energy retail environment</li>
|
<li>Held data accuracy and compliance in a regulated setting</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="tags">
|
<div class="tags"><span>Customer Service</span><span>Operations</span><span>Compliance</span></div>
|
||||||
<span>Customer Service</span><span>Billing Operations</span><span>Dispute Resolution</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -485,98 +389,64 @@ a:hover{color:var(--gold)}
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Education -->
|
<section class="caps">
|
||||||
<section class="edu-section">
|
<h2>What I bring</h2>
|
||||||
|
<div class="caps-grid">
|
||||||
|
<span class="cap">Marketing Strategy</span>
|
||||||
|
<span class="cap">Integrated Campaigns</span>
|
||||||
|
<span class="cap">Corporate Comms</span>
|
||||||
|
<span class="cap">Digital & AI Marketing</span>
|
||||||
|
<span class="cap">Brand & Product</span>
|
||||||
|
<span class="cap">Stakeholder Engagement</span>
|
||||||
|
<span class="cap">Event Management</span>
|
||||||
|
<span class="cap">Budget Management</span>
|
||||||
|
<span class="cap">Social Strategy</span>
|
||||||
|
<span class="cap">Energy Transition</span>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="edu">
|
||||||
<h2>Education</h2>
|
<h2>Education</h2>
|
||||||
<div class="edu-grid">
|
<div class="edu-grid">
|
||||||
<div class="edu-card">
|
<div class="edu-card">
|
||||||
<h3>University of Western Australia</h3>
|
<h3>University of Western Australia</h3>
|
||||||
<div class="detail">Bachelor of Commerce — Marketing & Management</div>
|
<div class="d">Bachelor of Commerce — Marketing & Management</div>
|
||||||
<div class="year">2005 – 2010</div>
|
<div class="y">2005 – 2010</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="edu-card">
|
<div class="edu-card">
|
||||||
<h3>University of Western Australia</h3>
|
<h3>University of Western Australia</h3>
|
||||||
<div class="detail">Bachelor of Arts — History & Politics</div>
|
<div class="d">Bachelor of Arts — History & Politics</div>
|
||||||
<div class="year">2005 – 2010</div>
|
<div class="y">2005 – 2010</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Professional Development -->
|
|
||||||
<section class="skills-section">
|
|
||||||
<h2>Professional Development</h2>
|
|
||||||
<div class="skills-grid">
|
|
||||||
<span class="skill-tag">IAP2 Essentials of Engagement (2023)</span>
|
|
||||||
<span class="skill-tag">AIM Time Management (2024)</span>
|
|
||||||
<span class="skill-tag">AI in Marketing — RMIT (2019)</span>
|
|
||||||
<span class="skill-tag">ADMA WFH Marketing Masterclass (2020)</span>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!-- Core Capabilities -->
|
|
||||||
<section class="skills-section">
|
|
||||||
<h2>Core Capabilities</h2>
|
|
||||||
<div class="skills-grid">
|
|
||||||
<span class="skill-tag">Marketing Strategy</span>
|
|
||||||
<span class="skill-tag">Integrated Campaigns</span>
|
|
||||||
<span class="skill-tag">Corporate Communications</span>
|
|
||||||
<span class="skill-tag">Digital & AI Marketing</span>
|
|
||||||
<span class="skill-tag">Brand Management</span>
|
|
||||||
<span class="skill-tag">Stakeholder Engagement</span>
|
|
||||||
<span class="skill-tag">Event Management</span>
|
|
||||||
<span class="skill-tag">Budget Management</span>
|
|
||||||
<span class="skill-tag">Social Media Strategy</span>
|
|
||||||
<span class="skill-tag">Energy Transition</span>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<div class="footer">
|
<div class="footer">
|
||||||
<p>Anthony Martin · <a href="https://anthony.martinwa.org" target="_blank">anthony.martinwa.org</a></p>
|
<p>Anthony Martin · <a href="https://anthony.martinwa.org" target="_blank">anthony.martinwa.org</a></p>
|
||||||
<p style="margin-top:0.3rem;color:var(--text-dim)">Built by the Rhino in the Green Jacket · Jul 2026</p>
|
<p style="margin-top:.4rem">Built by the Rhino in the Green Jacket · Jul 2026</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function toggleDetails(card){
|
function toggle(card){
|
||||||
const details=card.querySelector('.details');
|
const d=card.querySelector('.details'),b=card.querySelector('.btn'),l=b?.querySelector('.lb');
|
||||||
const btn=card.querySelector('.expand-btn');
|
const open=d.classList.contains('open');
|
||||||
const lbl=btn?.querySelector('.lb');
|
d.classList.toggle('open');b?.classList.toggle('open');
|
||||||
const isOpen=details.classList.contains('open');
|
if(l) l.textContent=open?'What I delivered':'Hide';
|
||||||
details.classList.toggle('open');
|
|
||||||
btn?.classList.toggle('open');
|
|
||||||
if(lbl) lbl.textContent=isOpen?'Show achievements':'Hide achievements';
|
|
||||||
}
|
}
|
||||||
|
// reveal on scroll
|
||||||
// Scroll-triggered visibility
|
const io=new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting)e.target.classList.add('in')}),{threshold:.15});
|
||||||
const observer=new IntersectionObserver(entries=>{
|
document.querySelectorAll('.item,.cap,.edu-card').forEach(el=>io.observe(el));
|
||||||
entries.forEach(entry=>{
|
// progress line
|
||||||
if(entry.isIntersecting) entry.target.classList.add('visible');
|
const tl=document.getElementById('timeline'),prog=document.getElementById('progress');
|
||||||
});
|
addEventListener('scroll',()=>{
|
||||||
},{threshold:0.12,rootMargin:'0px 0px -50px 0px'});
|
const r=tl.getBoundingClientRect(),vh=innerHeight;
|
||||||
document.querySelectorAll('.timeline-item, .edu-card, .skill-tag').forEach(el=>observer.observe(el));
|
const total=r.height,seen=Math.min(Math.max(vh*0.5-r.top,0),total);
|
||||||
|
prog.style.height=seen+'px';
|
||||||
// Dot highlight on scroll
|
},{passive:true});
|
||||||
const dotObserver=new IntersectionObserver(entries=>{
|
// keyboard
|
||||||
entries.forEach(entry=>{
|
document.querySelectorAll('.card').forEach(c=>{
|
||||||
const dot=entry.target.querySelector('.timeline-dot');
|
c.setAttribute('tabindex','0');c.setAttribute('role','button');
|
||||||
if(!dot) return;
|
c.addEventListener('keydown',e=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle(c)}});
|
||||||
if(entry.isIntersecting){
|
|
||||||
dot.style.transform='translateX(-50%) scale(1.25)';
|
|
||||||
dot.style.boxShadow='0 0 0 8px rgba(212,168,67,0.15)';
|
|
||||||
} else {
|
|
||||||
dot.style.transform='';
|
|
||||||
dot.style.boxShadow='';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},{threshold:0.35});
|
|
||||||
document.querySelectorAll('.timeline-item').forEach(el=>dotObserver.observe(el));
|
|
||||||
|
|
||||||
// Keyboard support
|
|
||||||
document.querySelectorAll('.timeline-card').forEach(card=>{
|
|
||||||
card.setAttribute('tabindex','0');
|
|
||||||
card.setAttribute('role','button');
|
|
||||||
card.addEventListener('keydown',e=>{
|
|
||||||
if(e.key==='Enter'||e.key===' '){e.preventDefault();toggleDetails(card);}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Reference in New Issue
Block a user