Phase 3: Career Arc Timeline + Portfolio Microsite + RSS Feed Proxy

This commit is contained in:
Tony0410
2026-07-20 21:30:11 +08:00
parent 5bb4b8705c
commit 2c918ae39c
3 changed files with 747 additions and 0 deletions

347
timeline.html Normal file
View File

@@ -0,0 +1,347 @@
<!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>
<style>
*{margin:0;padding:0;box-sizing:border-box}
:root{--green:#1a472a;--green-l:#2d7a47;--green-d:#0f2b1a;--gold:#d4a843;--cream:#f5f0e8;--dark:#0a0f0d;--text:#c8d6c0;--text-m:#7a9a7a;--card:#111f16;--card-border:#1a3a24;--spacing:clamp(40px,8vw,120px)}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--dark);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
/* 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.15) 0%,transparent 70%);pointer-events:none}
.hero h1{font-size:clamp(2.5rem,6vw,5rem);font-weight:800;color:var(--cream);letter-spacing:-0.03em;line-height:1.05;margin-bottom:0.5rem;animation:fadeUp 1s ease-out}
.hero h1 span{color:var(--gold)}
.hero .sub{font-size:clamp(1rem,2vw,1.3rem);color:var(--text-m);margin-bottom:1.5rem;animation:fadeUp 1s ease-out 0.2s both}
.hero .tag{display:inline-block;background:var(--green);color:var(--cream);padding:0.4rem 1rem;border-radius:100px;font-size:0.8rem;font-weight:600;letter-spacing:0.05em;animation:fadeUp 1s ease-out 0.4s both}
.hero .scroll-hint{position:absolute;bottom:2rem;color:var(--text-m);font-size:0.75rem;display:flex;flex-direction:column;align-items:center;gap:0.5rem;animation:bounce 2s infinite}
.hero .scroll-hint svg{width:20px;height:20px}
/* Now Banner */
.now-banner{background:linear-gradient(135deg,var(--green-d),var(--green));border:1px solid var(--green-l);border-radius:12px;padding:1.5rem 2rem;margin:0 auto var(--spacing);max-width:700px;text-align:center;position:relative}
.now-banner .label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.15em;color:var(--gold);font-weight:700}
.now-banner h2{font-size:1.4rem;color:var(--cream);margin:0.3rem 0}
.now-banner p{font-size:0.9rem;color:var(--text-m);line-height:1.5}
.now-banner .status-dot{display:inline-block;width:10px;height:10px;background:var(--gold);border-radius:50%;margin-right:0.4rem;animation:pulse 2s infinite}
/* Timeline */
.timeline-wrapper{max-width:900px;margin:0 auto;padding:0 1.5rem var(--spacing)}
.timeline{position:relative}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--green-l),var(--gold),var(--green-l));transform:translateX(-50%)}
.timeline-item{position:relative;margin-bottom:3rem;opacity:0;transform:translateY(40px);transition:opacity 0.8s ease,transform 0.8s ease}
.timeline-item.visible{opacity:1;transform:translateY(0)}
.timeline-item:nth-child(odd) .timeline-card{margin-left:auto}
.timeline-dot{position:absolute;left:50%;top:2rem;width:16px;height:16px;background:var(--gold);border:3px solid var(--dark);border-radius:50%;transform:translateX(-50%);z-index:2;transition:transform 0.3s,box-shadow 0.3s}
.timeline-item.visible .timeline-dot{box-shadow:0 0 20px rgba(212,168,67,0.4)}
.timeline-card{width:calc(50% - 30px);background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:1.5rem;cursor:pointer;transition:border-color 0.3s,box-shadow 0.3s;position:relative}
.timeline-card:hover{border-color:var(--green-l);box-shadow:0 4px 20px rgba(26,71,42,0.2)}
.timeline-card .date{font-size:0.7rem;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.3rem}
.timeline-card .role{font-size:1.1rem;font-weight:700;color:var(--cream);margin-bottom:0.1rem}
.timeline-card .company{font-size:0.9rem;color:var(--green-l);font-weight:600;margin-bottom:0.2rem}
.timeline-card .location{font-size:0.75rem;color:var(--text-m);margin-bottom:0.6rem}
.timeline-card .summary{font-size:0.85rem;color:var(--text);line-height:1.6;margin-bottom:0.5rem}
.timeline-card .expand-btn{font-size:0.75rem;color:var(--green-l);cursor:pointer;font-weight:600;display:inline-flex;align-items:center;gap:0.3rem}
.timeline-card .expand-btn:hover{color:var(--gold)}
.timeline-card .details{max-height:0;overflow:hidden;transition:max-height 0.5s ease,opacity 0.4s ease;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(--card-border)}
.timeline-card .details ul li{padding:0.4rem 0;font-size:0.8rem;color:var(--text);line-height:1.5;padding-left:1rem;position:relative}
.timeline-card .details ul li::before{content:'→';position:absolute;left:0;color:var(--gold)}
.timeline-card .details .tags{display:flex;flex-wrap:wrap;gap:0.4rem;padding-top:0.8rem;border-top:1px solid var(--card-border)}
.timeline-card .details .tags span{background:rgba(26,71,42,0.3);color:var(--text-m);font-size:0.7rem;padding:0.2rem 0.6rem;border-radius:4px;border:1px solid var(--card-border)}
/* Arrow connectors */
.timeline-item:nth-child(odd) .timeline-card::after{content:'';position:absolute;top:1.8rem;left:-8px;border:8px solid transparent;border-right-color:var(--card-border);z-index:1}
.timeline-item:nth-child(even) .timeline-card::after{content:'';position:absolute;top:1.8rem;right:-8px;border:8px solid transparent;border-left-color:var(--card-border);z-index:1}
/* Optional gap filler for short side */
.timeline-item:last-child{margin-bottom:0}
/* Education section */
.edu-section{max-width:700px;margin:0 auto var(--spacing);padding:0 1.5rem}
.edu-section h2{font-size:1.2rem;color:var(--gold);text-align:center;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:0.1em}
.edu-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.edu-card{background:var(--card);border:1px solid var(--card-border);border-radius:8px;padding:1.2rem;opacity:0;transform:translateY(20px);transition:opacity 0.6s ease,transform 0.6s ease}
.edu-card.visible{opacity:1;transform:translateY(0)}
.edu-card h3{font-size:0.9rem;color:var(--cream);margin-bottom:0.2rem}
.edu-card .degree{font-size:0.8rem;color:var(--text-m);margin-bottom:0.1rem}
.edu-card .year{font-size:0.7rem;color:var(--green-l)}
/* Skills */
.skills-section{max-width:700px;margin:0 auto var(--spacing);padding:0 1.5rem}
.skills-section h2{font-size:1.2rem;color:var(--gold);text-align:center;margin-bottom:1.5rem;text-transform:uppercase;letter-spacing:0.1em}
.skills-grid{display:flex;flex-wrap:wrap;gap:0.6rem;justify-content:center}
.skill-tag{background:var(--card);border:1px solid var(--card-border);border-radius:100px;padding:0.5rem 1rem;font-size:0.8rem;color:var(--text);opacity:0;transform:scale(0.9);transition:opacity 0.4s ease,transform 0.4s ease,border-color 0.3s}
.skill-tag.visible{opacity:1;transform:scale(1)}
.skill-tag:hover{border-color:var(--green-l);color:var(--cream)}
/* Footer */
.footer{text-align:center;padding:2rem;color:var(--text-m);font-size:0.75rem;border-top:1px solid var(--card-border);max-width:700px;margin:0 auto}
.footer a{color:var(--green-l);text-decoration:none}
.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(-8px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
/* Mobile: full-width cards */
@media(max-width:700px){
.timeline::before{left:20px}
.timeline-dot{left:20px}
.timeline-card{width:calc(100% - 50px);margin-left:50px!important}
.timeline-item:nth-child(odd) .timeline-card::after,.timeline-item:nth-child(even) .timeline-card::after{left:-8px;border:8px solid transparent;border-right-color:var(--card-border);right:auto}
.edu-grid{grid-template-columns:1fr}
}
</style>
</head>
<body>
<!-- Hero -->
<section class="hero">
<h1>Career <span>Arc</span></h1>
<p class="sub">Marketing &amp; communications professional · Energy transition · Perth, WA</p>
<div class="tag">15+ years in energy · 3 companies · 6 roles</div>
<div class="scroll-hint">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M7 13l5 5 5-5M7 6l5 5 5-5"/></svg>
<span>Scroll to explore</span>
</div>
</section>
<div class="timeline-wrapper">
<!-- Now Banner -->
<div class="now-banner" style="opacity:0;animation:fadeUp 1s ease-out 0.6s both">
<div class="label"><span class="status-dot"></span>Current Status</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">
<!-- 1. Pacific Energy -->
<div class="timeline-item">
<div class="timeline-dot"></div>
<div class="timeline-card" onclick="this.querySelector('.details').classList.toggle('open')">
<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>
<div class="expand-btn">▼ Show achievements</div>
<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">
<div class="timeline-dot"></div>
<div class="timeline-card" onclick="this.querySelector('.details').classList.toggle('open')">
<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>
<div class="expand-btn">▼ Show achievements</div>
<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">
<div class="timeline-dot"></div>
<div class="timeline-card" onclick="this.querySelector('.details').classList.toggle('open')">
<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>
<div class="expand-btn">▼ Show achievements</div>
<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">
<div class="timeline-dot"></div>
<div class="timeline-card" onclick="this.querySelector('.details').classList.toggle('open')">
<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>
<div class="expand-btn">▼ Show achievements</div>
<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">
<div class="timeline-dot"></div>
<div class="timeline-card" onclick="this.querySelector('.details').classList.toggle('open')">
<div class="date">2012 2014</div>
<div class="role">Assistant Product Manager, Industrial &amp; 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>
<div class="expand-btn">▼ Show achievements</div>
<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">
<div class="timeline-dot"></div>
<div class="timeline-card" onclick="this.querySelector('.details').classList.toggle('open')">
<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>
<div class="expand-btn">▼ Show achievements</div>
<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 &amp; 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 &amp; 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 &amp; 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.7rem">Built by the Rhino in the Green Jacket · Jul 2026</p>
</div>
<script>
// Scroll-triggered animations
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
}, { threshold: 0.15, rootMargin: '0px 0px -50px 0px' });
document.querySelectorAll('.timeline-item, .edu-card, .skill-tag').forEach(el => observer.observe(el));
// Stagger skill tags
document.querySelectorAll('.skill-tag').forEach((el, i) => {
el.style.transitionDelay = (i * 0.05) + 's';
});
// Timeline auto-scroll highlight
const items = document.querySelectorAll('.timeline-item');
const dotObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.querySelector('.timeline-dot').style.transform = 'translateX(-50%) scale(1.3)';
} else {
entry.target.querySelector('.timeline-dot').style.transform = 'translateX(-50%) scale(1)';
}
});
}, { threshold: 0.4 });
items.forEach(item => dotObserver.observe(item));
// Smooth scroll for hero arrow
document.querySelector('.scroll-hint')?.addEventListener('click', () => {
document.querySelector('.now-banner')?.scrollIntoView({ behavior: 'smooth' });
});
</script>
</body>
</html>