464 lines
28 KiB
HTML
464 lines
28 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||
<title>Career Arc · Anthony Martin</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=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
|
||
<style>
|
||
*{margin:0;padding:0;box-sizing:border-box}
|
||
:root{--green:#1a472a;--green-l:#2d7a47;--green-d:#0f2b1a;--gold:#d4a843;--gold-m:#b89230;--cream:#f5f0e8;--dark:#080a09;--surface:#0e1410;--card:#131e16;--card-hover:#182a1d;--border:rgba(26,71,42,0.25);--border-l:rgba(26,71,42,0.4);--text:#c8d6c0;--text-b:#e8f0e0;--text-m:#6a8a6a;--text-dim:#4a6a4a;--spacing:clamp(40px,8vw,120px);--radius:10px;--ease-out: cubic-bezier(0.22,1,0.36,1)}
|
||
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--dark);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased;font-weight:400;line-height:1.6}
|
||
::selection{background:rgba(212,168,67,0.25);color:var(--cream)}
|
||
/* Hero */
|
||
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:2rem;position:relative}
|
||
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 100%,rgba(26,71,42,0.18) 0%,transparent 70%);pointer-events:none}
|
||
.hero h1{font-size:clamp(2.8rem,6vw,5.5rem);font-weight:700;color:var(--text-b);letter-spacing:-0.03em;line-height:1.04;margin-bottom:0.6rem;text-wrap:balance}
|
||
.hero h1 span{color:var(--gold)}
|
||
.hero .sub{font-size:clamp(1rem,2vw,1.25rem);font-weight:400;color:var(--text-m);max-width:500px;margin-bottom:1.5rem;line-height:1.5}
|
||
.hero .tag{display:inline-flex;align-items:center;gap:0.5rem;background:rgba(26,71,42,0.2);border:1px solid var(--border-l);color:var(--cream);padding:0.4rem 1.2rem;border-radius:100px;font-size:0.8rem;font-weight:500;letter-spacing:0.02em}
|
||
.hero .tag .num{display:inline-block;min-width:1.2ch;text-align:right;font-weight:700;color:var(--gold)}
|
||
.hero .scroll-hint{position:absolute;bottom:2.5rem;color:var(--text-dim);font-size:0.7rem;display:flex;flex-direction:column;align-items:center;gap:0.4rem;cursor:pointer;transition:color 0.3s;letter-spacing:0.05em;text-transform:uppercase}
|
||
.hero .scroll-hint:hover{color:var(--text-m)}
|
||
.hero .scroll-hint .arrow{width:18px;height:18px;animation:bounce 2s var(--ease-out) infinite}
|
||
/* Now Banner */
|
||
.now-banner{position:relative;background:linear-gradient(135deg,rgba(15,30,20,0.9),rgba(26,71,42,0.3));border:1px solid var(--border-l);border-radius:12px;padding:1.5rem 2rem;margin:0 auto var(--spacing);max-width:700px;text-align:center;overflow:hidden}
|
||
.now-banner::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-m),transparent)}
|
||
.now-banner .label{font-size:0.65rem;text-transform:uppercase;letter-spacing:0.15em;color:var(--gold);font-weight:600}
|
||
.now-banner .status-dot{display:inline-block;width:8px;height:8px;background:var(--gold);border-radius:50%;margin-right:0.35rem;animation:pulse 2s var(--ease-out) infinite;vertical-align:middle}
|
||
.now-banner h2{font-size:clamp(1.2rem,2vw,1.5rem);font-weight:600;color:var(--text-b);margin:0.4rem 0;letter-spacing:-0.01em;text-wrap:balance}
|
||
.now-banner p{font-size:0.85rem;color:var(--text);line-height:1.6;max-width:600px;margin:0 auto}
|
||
/* Timeline layout */
|
||
.timeline-wrapper{max-width:900px;margin:0 auto;padding:0 1.5rem var(--spacing);scrollbar-width:thin;scrollbar-color:var(--border) transparent}
|
||
.timeline{position:relative}
|
||
.timeline-line{position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--green-l),var(--gold),rgba(212,168,67,0.1));transform:translateX(-50%)}
|
||
.timeline-item{position:relative;margin-bottom:3rem;opacity:0;transition:opacity 0.8s var(--ease-out),transform 0.8s var(--ease-out)}
|
||
.timeline-item.visible{opacity:1}
|
||
.timeline-item:nth-child(odd){transform:translateX(-30px)}
|
||
.timeline-item:nth-child(even){transform:translateX(30px)}
|
||
.timeline-item:nth-child(odd).visible{transform:translateX(0)}
|
||
.timeline-item:nth-child(even).visible{transform:translateX(0)}
|
||
.timeline-item:nth-child(odd) .timeline-card{margin-left:auto}
|
||
/* Progress badge */
|
||
.tl-progress{position:absolute;top:-2rem;left:50%;transform:translateX(-50%);font-size:0.65rem;color:var(--text-dim);letter-spacing:0.06em;text-transform:uppercase;white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:0.15rem 0.6rem}
|
||
.timeline-dot{position:absolute;left:50%;top:2rem;width:14px;height:14px;background:var(--green-l);border:2px solid var(--dark);border-radius:50%;transform:translateX(-50%) scale(1);z-index:2;transition:transform 0.4s var(--ease-out),box-shadow 0.4s var(--ease-out);box-shadow:0 0 0 0 rgba(45,122,71,0.3)}
|
||
.timeline-item.visible .timeline-dot{background:var(--gold);transform:translateX(-50%) scale(1.25);box-shadow:0 0 20px rgba(212,168,67,0.3)}
|
||
.timeline-card{width:calc(50% - 32px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem 1.5rem;cursor:pointer;transition:border-color 0.3s var(--ease-out),background 0.3s var(--ease-out);position:relative}
|
||
.timeline-card:hover{background:var(--card-hover);border-color:var(--border-l)}
|
||
.timeline-card .date{font-size:0.65rem;font-weight:600;color:var(--gold);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.3rem}
|
||
.timeline-card .role{font-size:1.05rem;font-weight:600;color:var(--text-b);margin-bottom:0.1rem;letter-spacing:-0.01em;text-wrap:balance}
|
||
.timeline-card .company{font-size:0.85rem;font-weight:500;color:var(--green-l);margin-bottom:0.15rem}
|
||
.timeline-card .location{font-size:0.7rem;color:var(--text-dim);margin-bottom:0.5rem;font-weight:400}
|
||
.timeline-card .summary{font-size:0.82rem;color:var(--text);line-height:1.6;font-weight:400;margin-bottom:0.5rem}
|
||
.timeline-card .expand-btn{font-size:0.72rem;font-weight:500;color:var(--green-l);cursor:pointer;display:inline-flex;align-items:center;gap:0.35rem;border:none;background:none;padding:0;transition:color 0.3s}
|
||
.timeline-card .expand-btn:hover{color:var(--gold)}
|
||
.timeline-card .expand-btn .arrow{display:inline-block;transition:transform 0.3s var(--ease-out);font-size:0.6rem}
|
||
.timeline-card .expand-btn.open .arrow{transform:rotate(180deg)}
|
||
.timeline-card .details{max-height:0;overflow:hidden;transition:max-height 0.5s var(--ease-out),opacity 0.4s var(--ease-out);opacity:0}
|
||
.timeline-card .details.open{max-height:2000px;opacity:1}
|
||
.timeline-card .details ul{list-style:none;padding:0.8rem 0 0;border-top:1px solid var(--border)}
|
||
.timeline-card .details ul li{padding:0.35rem 0;font-size:0.78rem;color:var(--text);line-height:1.55;padding-left:1.2rem;position:relative;font-weight:400}
|
||
.timeline-card .details ul li::before{content:'→';position:absolute;left:0;color:var(--gold);font-weight:400}
|
||
.timeline-card .details .tags{display:flex;flex-wrap:wrap;gap:0.35rem;padding-top:0.7rem;border-top:1px solid var(--border)}
|
||
.timeline-card .details .tags span{background:rgba(26,71,42,0.25);color:var(--text-m);font-size:0.65rem;padding:0.2rem 0.55rem;border-radius:4px;border:1px solid transparent;letter-spacing:0.02em;transition:border-color 0.3s,color 0.3s}
|
||
.timeline-card .details .tags span:hover{border-color:var(--border-l);color:var(--cream)}
|
||
/* Connector arrows */
|
||
.timeline-item:nth-child(odd) .timeline-card::after{content:'';position:absolute;top:1.8rem;left:-7px;border:7px solid transparent;border-right-color:var(--border);z-index:1}
|
||
.timeline-item:nth-child(even) .timeline-card::after{content:'';position:absolute;top:1.8rem;right:-7px;border:7px solid transparent;border-left-color:var(--border);z-index:1}
|
||
.timeline-item:last-child{margin-bottom:0}
|
||
/* Education */
|
||
.edu-section{max-width:700px;margin:0 auto var(--spacing);padding:0 1.5rem}
|
||
.edu-section h2{font-size:0.75rem;font-weight:600;color:var(--gold);text-align:center;margin-bottom:1.2rem;text-transform:uppercase;letter-spacing:0.12em}
|
||
.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
|
||
.edu-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1.2rem 1.3rem;opacity:0;transform:translateY(15px);transition:opacity 0.6s var(--ease-out),transform 0.6s var(--ease-out)}
|
||
.edu-card.visible{opacity:1;transform:translateY(0)}
|
||
.edu-card h3{font-size:0.85rem;font-weight:600;color:var(--text-b);margin-bottom:0.15rem}
|
||
.edu-card .degree{font-size:0.78rem;color:var(--text);margin-bottom:0.1rem;font-weight:400}
|
||
.edu-card .year{font-size:0.65rem;font-weight:500;color:var(--green-l)}
|
||
/* Skills */
|
||
.skills-section{max-width:700px;margin:0 auto var(--spacing);padding:0 1.5rem}
|
||
.skills-section h2{font-size:0.75rem;font-weight:600;color:var(--gold);text-align:center;margin-bottom:1.2rem;text-transform:uppercase;letter-spacing:0.12em}
|
||
.skills-grid{display:flex;flex-wrap:wrap;gap:0.5rem;justify-content:center}
|
||
.skill-tag{background:var(--card);border:1px solid var(--border);border-radius:100px;padding:0.4rem 1rem;font-size:0.78rem;font-weight:400;color:var(--text);opacity:0;transform:scale(0.92);transition:opacity 0.4s var(--ease-out),transform 0.4s var(--ease-out),border-color 0.3s,color 0.3s}
|
||
.skill-tag.visible{opacity:1;transform:scale(1)}
|
||
.skill-tag:hover{border-color:var(--border-l);color:var(--cream)}
|
||
/* Footer */
|
||
.footer{text-align:center;padding:2.5rem 1.5rem;color:var(--text-dim);font-size:0.7rem;border-top:1px solid var(--border);max-width:700px;margin:0 auto}
|
||
.footer a{color:var(--green-l);text-decoration:none;transition:color 0.3s}
|
||
.footer a:hover{color:var(--gold)}
|
||
/* Animations */
|
||
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
|
||
@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
|
||
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.35}}
|
||
@keyframes counterIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
|
||
.hero-entrance{animation:fadeUp 1s var(--ease-out) both}
|
||
.hero-entrance-1{animation:fadeUp 1s var(--ease-out) 0.15s both}
|
||
.hero-entrance-2{animation:fadeUp 1s var(--ease-out) 0.3s both}
|
||
.hero-entrance-3{animation:fadeUp 1s var(--ease-out) 0.6s both}
|
||
/* View-timeline scroll animation (progressive enhancement) */
|
||
@supports (animation-timeline: view()){
|
||
.timeline-item{opacity:0;transform:none;animation:tl-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
|
||
.timeline-item:nth-child(odd){animation-name:tl-reveal-left}
|
||
.timeline-item:nth-child(even){animation-name:tl-reveal-right}
|
||
@keyframes tl-reveal{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
|
||
@keyframes tl-reveal-left{from{opacity:0;transform:translateX(-20px) translateY(20px)}to{opacity:1;transform:translateX(0) translateY(0)}}
|
||
@keyframes tl-reveal-right{from{opacity:0;transform:translateX(20px) translateY(20px)}to{opacity:1;transform:translateX(0) translateY(0)}}
|
||
.timeline-line{animation:tl-line-grow linear both;animation-timeline:view();animation-range:entry 0% entry 80%;transform-origin:top}
|
||
@keyframes tl-line-grow{from{transform:scaleY(0) translateX(-50%)}to{transform:scaleY(1) translateX(-50%)}}
|
||
}
|
||
/* Reduced motion */
|
||
@media (prefers-reduced-motion: reduce){
|
||
*,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;scroll-behavior:auto!important}
|
||
.timeline-item{opacity:1!important;transform:none!important}
|
||
.skill-tag{opacity:1!important;transform:none!important}
|
||
.edu-card{opacity:1!important;transform:none!important}
|
||
.hero .scroll-hint .arrow{animation:none}
|
||
.now-banner .status-dot{animation:none}
|
||
}
|
||
/* Mobile */
|
||
@media(max-width:700px){
|
||
.timeline-line{left:18px}
|
||
.timeline-dot{left:18px;width:12px;height:12px}
|
||
.tl-progress{left:18px;transform:none}
|
||
.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}
|
||
.timeline-item:nth-child(odd){transform:translateX(0)}
|
||
.timeline-item:nth-child(even){transform:translateX(0)}
|
||
.edu-grid{grid-template-columns:1fr}
|
||
.hero h1{letter-spacing:-0.02em}
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<!-- Hero -->
|
||
<section class="hero">
|
||
<h1 class="hero-entrance">Career <span>Arc</span></h1>
|
||
<p class="sub hero-entrance-1">Marketing & communications professional · Energy transition · Perth, WA</p>
|
||
<div class="tag hero-entrance-2">
|
||
<span class="num" data-target="15">0</span><span>+ years in energy</span>
|
||
<span style="font-size:1.2em;color:var(--text-dim)">·</span>
|
||
<span class="num" data-target="3">0</span><span> companies</span>
|
||
<span style="font-size:1.2em;color:var(--text-dim)">·</span>
|
||
<span class="num" data-target="6">0</span><span> roles</span>
|
||
</div>
|
||
<div class="scroll-hint hero-entrance-3" onclick="document.querySelector('.now-banner')?.scrollIntoView({behavior:'smooth'})">
|
||
<svg class="arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M7 13l5 5 5-5M7 6l5 5 5-5"/></svg>
|
||
<span>Explore</span>
|
||
</div>
|
||
</section>
|
||
|
||
<div class="timeline-wrapper">
|
||
|
||
<!-- Now Banner -->
|
||
<div class="now-banner" style="opacity:0;animation:fadeUp 1s var(--ease-out) 0.8s both">
|
||
<div class="label"><span class="status-dot"></span>Present</div>
|
||
<h2>Open to Opportunities</h2>
|
||
<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 class="timeline" id="timeline">
|
||
|
||
<div class="tl-progress" id="tl-progress">—</div>
|
||
|
||
<!-- 1. Pacific Energy -->
|
||
<div class="timeline-item" data-idx="1">
|
||
<div class="timeline-dot"></div>
|
||
<div class="timeline-card" onclick="toggleDetails(this)">
|
||
<div class="date">Jun 2025 – Jul 2026</div>
|
||
<div class="role">Marketing Advisor</div>
|
||
<div class="company">Pacific Energy</div>
|
||
<div class="location">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>
|
||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
||
<div class="details">
|
||
<ul>
|
||
<li>Developed and rolled out a social media strategy and 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>Led marketing collaboration on the corporate website, named Science and Sustainability Website of the Year at the 2026 Australian Web Awards</li>
|
||
<li>End-to-end marketing delivery for Australian Clean Energy Summit and Pilbara Summit — sponsorship activation, creative, content, logistics and stakeholder coordination</li>
|
||
<li>Translated complex project information into executive comms covering battery storage, remote power, hybrid systems and renewable integration</li>
|
||
<li>Maintained brand voice and visual standards across digital, print, signage, social and event channels</li>
|
||
</ul>
|
||
<div class="tags">
|
||
<span>B2B Marketing</span><span>AI Strategy</span><span>Web Awards</span><span>Event Management</span><span>Corporate Comms</span><span>Social Media</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 2. Horizon Power -->
|
||
<div class="timeline-item" data-idx="2">
|
||
<div class="timeline-dot"></div>
|
||
<div class="timeline-card" onclick="toggleDetails(this)">
|
||
<div class="date">2019 – Sep 2024</div>
|
||
<div class="role">Marketing Specialist</div>
|
||
<div class="company">Horizon Power</div>
|
||
<div class="location">Perth, WA</div>
|
||
<div class="summary">Integrated marketing, regulated communications, customer engagement and energy transition programs across WA's regional energy provider.</div>
|
||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
||
<div class="details">
|
||
<ul>
|
||
<li>Led integrated marketing and customer communication campaigns across digital, social, email, direct mail, television, print and community channels</li>
|
||
<li>Managed annual marketing budgets exceeding $2 million, using research and audience segmentation to prioritise investment</li>
|
||
<li>Led marketing for the WA EV Network — the state's electric vehicle charging infrastructure rollout</li>
|
||
<li>Supported launch of Smart Connect Solar and other distributed energy initiatives</li>
|
||
<li>Directed compliance-critical communications for government price changes, energy concessions and cost-of-living initiatives</li>
|
||
<li>Created the Bright Horizons STEM program, providing solar-powered education kits to remote schools</li>
|
||
</ul>
|
||
<div class="tags">
|
||
<span>Integrated Campaigns</span><span>$2M+ Budget</span><span>WA EV Network</span><span>Energy Transition</span><span>Regulatory Comms</span><span>STEM Program</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 3. Synergy: Energy Solutions Marketing Specialist -->
|
||
<div class="timeline-item" data-idx="3">
|
||
<div class="timeline-dot"></div>
|
||
<div class="timeline-card" onclick="toggleDetails(this)">
|
||
<div class="date">2015 – 2018</div>
|
||
<div class="role">Energy Solutions Marketing Specialist</div>
|
||
<div class="company">Synergy</div>
|
||
<div class="location">Perth, WA</div>
|
||
<div class="summary">Commercial growth and customer experience across renewable energy products, digital channels and agency management.</div>
|
||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
||
<div class="details">
|
||
<ul>
|
||
<li>Led development of the SolarReturn proposition from research through launch, contributing to a 40% sales increase in year one</li>
|
||
<li>Managed three-plus creative, digital and media agencies, improving conversion rates by 35% through iterative optimisation</li>
|
||
<li>Mapped the end-to-end solar customer journey, reducing inquiry-to-sale timeframes 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>
|
||
</ul>
|
||
<div class="tags">
|
||
<span>Product Launch</span><span>SolarReturn</span><span>Agency Management</span><span>Conversion Optimisation</span><span>Customer Journey</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 4. Synergy: Business Segment Coordinator -->
|
||
<div class="timeline-item" data-idx="4">
|
||
<div class="timeline-dot"></div>
|
||
<div class="timeline-card" onclick="toggleDetails(this)">
|
||
<div class="date">2014 – 2015</div>
|
||
<div class="role">Business Segment Coordinator</div>
|
||
<div class="company">Synergy</div>
|
||
<div class="location">Perth, WA</div>
|
||
<div class="summary">Financial and portfolio management, enterprise communications and cross-functional coordination.</div>
|
||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
||
<div class="details">
|
||
<ul>
|
||
<li>Managed Synergy's streetlighting portfolio and resolved $1.3 million in billing discrepancies through detailed contract and process reviews</li>
|
||
<li>Introduced stronger reconciliation controls and led cross-functional input into the Annual Review of Products and Pricing</li>
|
||
<li>Developed a company-wide communications framework across email, SMS and print for 1M+ customers</li>
|
||
</ul>
|
||
<div class="tags">
|
||
<span>Financial Management</span><span>Billing Resolution</span><span>Enterprise Comms</span><span>Cross-functional Leadership</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 5. Synergy: Assistant Product Manager -->
|
||
<div class="timeline-item" data-idx="5">
|
||
<div class="timeline-dot"></div>
|
||
<div class="timeline-card" onclick="toggleDetails(this)">
|
||
<div class="date">2012 – 2014</div>
|
||
<div class="role">Assistant Product Manager, Industrial & Commercial</div>
|
||
<div class="company">Synergy</div>
|
||
<div class="location">Perth, WA</div>
|
||
<div class="summary">Product and sales development for commercial renewable energy products, digital sales platforms and training.</div>
|
||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
||
<div class="details">
|
||
<ul>
|
||
<li>Developed and launched the Synergy Sellback Program, enabling commercial customers to receive value from exported renewable energy</li>
|
||
<li>Created an online sales platform with pricing calculators and training material</li>
|
||
<li>Supported sales performance 150% above target through platform and training initiatives</li>
|
||
</ul>
|
||
<div class="tags">
|
||
<span>Product Development</span><span>Sellback Program</span><span>Digital Platform</span><span>Sales Enablement</span><span>B2B</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 6. Synergy: Billing Officer -->
|
||
<div class="timeline-item" data-idx="6">
|
||
<div class="timeline-dot"></div>
|
||
<div class="timeline-card" onclick="toggleDetails(this)">
|
||
<div class="date">2010 – 2012</div>
|
||
<div class="role">Billing Officer</div>
|
||
<div class="company">Synergy</div>
|
||
<div class="location">Perth, WA</div>
|
||
<div class="summary">Customer billing, enquiry management, dispute resolution and data accuracy in a regulated energy retail environment.</div>
|
||
<button class="expand-btn"><span class="arrow">▾</span> <span class="lb">Show achievements</span></button>
|
||
<div class="details">
|
||
<ul>
|
||
<li>Managed billing enquiries, account corrections and dispute resolution for residential and small business customers</li>
|
||
<li>Ensured data accuracy and compliance in a regulated energy retail environment</li>
|
||
</ul>
|
||
<div class="tags">
|
||
<span>Customer Service</span><span>Billing Operations</span><span>Dispute Resolution</span><span>Regulatory Compliance</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Education -->
|
||
<section class="edu-section">
|
||
<h2>Education</h2>
|
||
<div class="edu-grid">
|
||
<div class="edu-card">
|
||
<h3>University of Western Australia</h3>
|
||
<div class="degree">Bachelor of Commerce — Marketing & Management</div>
|
||
<div class="year">2005 – 2010</div>
|
||
</div>
|
||
<div class="edu-card">
|
||
<h3>University of Western Australia</h3>
|
||
<div class="degree">Bachelor of Arts — History & Politics</div>
|
||
<div class="year">2005 – 2010</div>
|
||
</div>
|
||
</div>
|
||
</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">
|
||
<p>Anthony Martin · <a href="https://anthony.martinwa.org" target="_blank">anthony.martinwa.org</a></p>
|
||
<p style="margin-top:0.3rem;font-size:0.65rem;color:var(--text-dim)">Built by the Rhino in the Green Jacket · Jul 2026</p>
|
||
</div>
|
||
|
||
<script>
|
||
// Animated counters
|
||
function animateCounters(){
|
||
document.querySelectorAll('.num[data-target]').forEach(el => {
|
||
const target=parseInt(el.dataset.target);
|
||
const dur=800; const start=performance.now();
|
||
el.textContent='0';
|
||
function frame(now){
|
||
const p=Math.min((now-start)/dur,1);
|
||
const eased=1-Math.pow(1-p,3);
|
||
el.textContent=Math.floor(0+(target-0)*eased);
|
||
if(p<1) requestAnimationFrame(frame);
|
||
}
|
||
requestAnimationFrame(frame);
|
||
});
|
||
}
|
||
|
||
// Toggle details with button text
|
||
function toggleDetails(card){
|
||
const details=card.querySelector('.details');
|
||
const btn=card.querySelector('.expand-btn');
|
||
const lbl=btn?.querySelector('.lb');
|
||
const isOpen=details.classList.contains('open');
|
||
details.classList.toggle('open');
|
||
btn?.classList.toggle('open');
|
||
if(lbl) lbl.textContent=isOpen?'Show achievements':'Hide achievements';
|
||
}
|
||
|
||
// Scroll-triggered animations (fallback for non-view-timeline browsers)
|
||
if(!CSS.supports('animation-timeline','view()')){
|
||
const observer=new IntersectionObserver((entries)=>{
|
||
entries.forEach(entry=>{
|
||
if(entry.isIntersecting){
|
||
entry.target.classList.add('visible');
|
||
// Update progress
|
||
const items=document.querySelectorAll('.timeline-item');
|
||
const visible=document.querySelectorAll('.timeline-item.visible').length;
|
||
const prog=document.getElementById('tl-progress');
|
||
if(prog) prog.textContent='Role '+Math.min(visible,items.length)+' of '+items.length;
|
||
}
|
||
});
|
||
},{threshold:0.12,rootMargin:'0px 0px -40px 0px'});
|
||
document.querySelectorAll('.timeline-item, .edu-card, .skill-tag').forEach(el=>observer.observe(el));
|
||
} else {
|
||
// View-timeline browsers: still track visible count via IntersectionObserver for progress
|
||
const progObserver=new IntersectionObserver((entries)=>{
|
||
entries.forEach(entry=>{
|
||
if(entry.isIntersecting){
|
||
const items=document.querySelectorAll('.timeline-item');
|
||
const visible=[...items].filter(i=>i.getBoundingClientRect().top<window.innerHeight).length;
|
||
const prog=document.getElementById('tl-progress');
|
||
if(prog) prog.textContent='Role '+Math.min(visible+1,items.length)+' of '+items.length;
|
||
}
|
||
});
|
||
},{threshold:0.1});
|
||
document.querySelectorAll('.timeline-item').forEach(el=>progObserver.observe(el));
|
||
}
|
||
|
||
// Stagger skill tags
|
||
document.querySelectorAll('.skill-tag').forEach((el,i)=>{
|
||
el.style.transitionDelay=(i*0.04)+'s';
|
||
});
|
||
|
||
// Active dot highlight
|
||
const dotObserver=new IntersectionObserver((entries)=>{
|
||
entries.forEach(entry=>{
|
||
const dot=entry.target.querySelector('.timeline-dot');
|
||
if(entry.isIntersecting){
|
||
dot.style.background='var(--gold)';
|
||
dot.style.transform='translateX(-50%) scale(1.25)';
|
||
dot.style.boxShadow='0 0 20px rgba(212,168,67,0.3)';
|
||
} else {
|
||
dot.style.background='';
|
||
dot.style.transform='';
|
||
dot.style.boxShadow='';
|
||
}
|
||
});
|
||
},{threshold:0.35});
|
||
document.querySelectorAll('.timeline-item').forEach(el=>dotObserver.observe(el));
|
||
|
||
// Init progress on load
|
||
(function initProg(){
|
||
const items=document.querySelectorAll('.timeline-item');
|
||
const prog=document.getElementById('tl-progress');
|
||
if(prog) prog.textContent='Role 0 of '+items.length;
|
||
})();
|
||
|
||
// Animate counters after hero entrance
|
||
setTimeout(animateCounters,900);
|
||
|
||
// Keyboard support for expandable cards
|
||
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>
|
||
</body>
|
||
</html>
|