Skip to content

Commit 543a7b1

Browse files
Amir-Hossein KarimiAmir-Hossein Karimi
authored andcommitted
initial site
0 parents  commit 543a7b1

2 files changed

Lines changed: 248 additions & 0 deletions

File tree

CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
algorithmicrecourse.com

index.html

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6+
<title>Algorithmic Recourse</title>
7+
<link rel="preconnect" href="https://fonts.googleapis.com">
8+
<link href="https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300&family=Instrument+Serif:ital@0;1&display=swap" rel="stylesheet">
9+
<style>
10+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
11+
12+
:root {
13+
--bg: #0d0f0e;
14+
--surface: #141714;
15+
--border: #232623;
16+
--text: #e8ede9;
17+
--muted: #6b776c;
18+
--accent: #a3e3a0;
19+
--accent-dim: #2a3d2a;
20+
}
21+
22+
html { scroll-behavior: smooth; }
23+
24+
body {
25+
background: var(--bg);
26+
color: var(--text);
27+
font-family: 'DM Mono', monospace;
28+
font-size: 14px;
29+
line-height: 1.7;
30+
min-height: 100vh;
31+
display: flex;
32+
flex-direction: column;
33+
}
34+
35+
/* ─── noise overlay ─── */
36+
body::before {
37+
content: '';
38+
position: fixed;
39+
inset: 0;
40+
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
41+
pointer-events: none;
42+
z-index: 1000;
43+
opacity: 0.35;
44+
}
45+
46+
/* ─── header ─── */
47+
header {
48+
border-bottom: 1px solid var(--border);
49+
padding: 1.5rem 3rem;
50+
display: flex;
51+
align-items: center;
52+
justify-content: space-between;
53+
animation: fadeDown 0.6s ease both;
54+
}
55+
56+
.logo {
57+
font-family: 'Instrument Serif', serif;
58+
font-size: 1.1rem;
59+
font-style: italic;
60+
color: var(--accent);
61+
letter-spacing: 0.01em;
62+
}
63+
64+
.logo span {
65+
color: var(--muted);
66+
font-style: normal;
67+
font-family: 'DM Mono', monospace;
68+
font-size: 0.75rem;
69+
margin-left: 0.6rem;
70+
}
71+
72+
nav a {
73+
color: var(--muted);
74+
text-decoration: none;
75+
font-size: 0.75rem;
76+
letter-spacing: 0.08em;
77+
text-transform: uppercase;
78+
transition: color 0.2s;
79+
margin-left: 2rem;
80+
}
81+
82+
nav a:hover { color: var(--accent); }
83+
84+
/* ─── hero ─── */
85+
.hero {
86+
flex: 1;
87+
display: grid;
88+
place-items: center;
89+
padding: 6rem 3rem;
90+
position: relative;
91+
overflow: hidden;
92+
}
93+
94+
/* grid lines */
95+
.hero::after {
96+
content: '';
97+
position: absolute;
98+
inset: 0;
99+
background-image:
100+
linear-gradient(var(--border) 1px, transparent 1px),
101+
linear-gradient(90deg, var(--border) 1px, transparent 1px);
102+
background-size: 60px 60px;
103+
mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black 30%, transparent 100%);
104+
opacity: 0.5;
105+
}
106+
107+
.hero-inner {
108+
position: relative;
109+
z-index: 2;
110+
max-width: 680px;
111+
text-align: center;
112+
animation: fadeUp 0.8s ease 0.2s both;
113+
}
114+
115+
.tag {
116+
display: inline-block;
117+
background: var(--accent-dim);
118+
color: var(--accent);
119+
font-size: 0.7rem;
120+
letter-spacing: 0.12em;
121+
text-transform: uppercase;
122+
padding: 0.3rem 0.8rem;
123+
border-radius: 2px;
124+
margin-bottom: 2rem;
125+
}
126+
127+
h1 {
128+
font-family: 'Instrument Serif', serif;
129+
font-size: clamp(2.4rem, 6vw, 4rem);
130+
line-height: 1.1;
131+
font-weight: 400;
132+
margin-bottom: 1.5rem;
133+
color: var(--text);
134+
}
135+
136+
h1 em {
137+
font-style: italic;
138+
color: var(--accent);
139+
}
140+
141+
.subtitle {
142+
color: var(--muted);
143+
font-size: 0.85rem;
144+
max-width: 480px;
145+
margin: 0 auto 3rem;
146+
line-height: 1.8;
147+
}
148+
149+
.cta {
150+
display: inline-flex;
151+
align-items: center;
152+
gap: 0.6rem;
153+
background: var(--accent);
154+
color: #0d0f0e;
155+
text-decoration: none;
156+
font-size: 0.75rem;
157+
font-weight: 500;
158+
letter-spacing: 0.06em;
159+
text-transform: uppercase;
160+
padding: 0.8rem 1.8rem;
161+
border-radius: 2px;
162+
transition: opacity 0.2s, transform 0.2s;
163+
}
164+
165+
.cta:hover { opacity: 0.85; transform: translateY(-1px); }
166+
167+
/* ─── status bar ─── */
168+
.status-bar {
169+
border-top: 1px solid var(--border);
170+
padding: 0.8rem 3rem;
171+
display: flex;
172+
align-items: center;
173+
gap: 2rem;
174+
font-size: 0.7rem;
175+
color: var(--muted);
176+
letter-spacing: 0.05em;
177+
animation: fadeUp 0.6s ease 0.5s both;
178+
}
179+
180+
.status-dot {
181+
width: 6px; height: 6px;
182+
border-radius: 50%;
183+
background: var(--accent);
184+
box-shadow: 0 0 6px var(--accent);
185+
display: inline-block;
186+
margin-right: 0.4rem;
187+
animation: pulse 2s ease infinite;
188+
}
189+
190+
@keyframes pulse {
191+
0%, 100% { opacity: 1; }
192+
50% { opacity: 0.4; }
193+
}
194+
195+
@keyframes fadeDown {
196+
from { opacity: 0; transform: translateY(-12px); }
197+
to { opacity: 1; transform: translateY(0); }
198+
}
199+
200+
@keyframes fadeUp {
201+
from { opacity: 0; transform: translateY(16px); }
202+
to { opacity: 1; transform: translateY(0); }
203+
}
204+
205+
@media (max-width: 600px) {
206+
header { padding: 1.2rem 1.5rem; }
207+
.hero { padding: 4rem 1.5rem; }
208+
.status-bar { padding: 0.8rem 1.5rem; flex-wrap: wrap; gap: 0.8rem; }
209+
}
210+
</style>
211+
</head>
212+
<body>
213+
214+
<header>
215+
<div class="logo">
216+
Algorithmic Recourse
217+
<span>v0.1</span>
218+
</div>
219+
<nav>
220+
<a href="#">Research</a>
221+
<a href="#">About</a>
222+
<a href="#">Contact</a>
223+
</nav>
224+
</header>
225+
226+
<main class="hero">
227+
<div class="hero-inner">
228+
<div class="tag">Coming Soon</div>
229+
<h1>When algorithms decide,<br><em>you deserve a path back.</em></h1>
230+
<p class="subtitle">
231+
Exploring the intersection of machine learning, fairness, and the human
232+
right to explanation — one decision at a time.
233+
</p>
234+
<a class="cta" href="mailto:hello@algorithmicrecourse.com">
235+
Get in touch →
236+
</a>
237+
</div>
238+
</main>
239+
240+
<footer class="status-bar">
241+
<span><span class="status-dot"></span>Site live</span>
242+
<span>algorithmicrecourse.com</span>
243+
<span style="margin-left:auto;">Built with GitHub Pages</span>
244+
</footer>
245+
246+
</body>
247+
</html>

0 commit comments

Comments
 (0)