Files changed (1) hide show
  1. style.css +71 -75
style.css CHANGED
@@ -1,85 +1,81 @@
1
- :root{
2
- --bg:#071017;
3
- --panel:#0e2a32;
4
- --muted:#98a6ad;
5
- --accent:#18a0e0;
6
- --accent-2:#0bb1ff;
7
- --glass: rgba(255,255,255,0.03);
8
- --card: rgba(255,255,255,0.03);
9
- --radius:12px;
10
- font-family:'Space Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,Arial;
11
- }
12
 
13
- *{box-sizing:border-box}
14
- html,body{height:100%;margin:0}
15
- body{
16
- background: linear-gradient(180deg,var(--bg), #051014);
17
- color:#dbeef8;
18
- -webkit-font-smoothing:antialiased;
19
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
- /* container */
22
- .container{width:min(1200px,94%);margin:0 auto;padding:0 16px}
23
-
24
- /* header */
25
- .site-header{
26
- position:sticky;top:0;z-index:40;background:rgba(2,8,10,0.5);backdrop-filter:blur(6px);
27
- border-bottom:1px solid rgba(255,255,255,0.03)
28
- }
29
- .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;height:72px}
30
- .brand{display:flex;align-items:center;gap:12px}
31
- .logo{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--accent-2),var(--accent));box-shadow:0 6px 18px rgba(11,177,255,0.06)}
32
- .brand-name{font-weight:700;color:#eaf6ff}
33
-
34
- /* nav */
35
- .nav-links{display:flex;gap:20px;align-items:center}
36
- .nav-link{color:rgba(255,255,255,0.72);text-decoration:none;font-weight:500;cursor:pointer}
37
- .nav-link:hover{color:var(--accent)}
38
- .nav-link.active{color:var(--accent);font-weight:700}
39
 
40
- /* buttons */
41
- .btn{border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:8px}
42
- .btn-primary{background:linear-gradient(180deg,var(--accent-2),var(--accent));color:#002229;padding:10px 14px}
43
- .btn-outline{background:transparent;border:1px solid rgba(255,255,255,0.06);color:rgba(255,255,255,0.9);padding:8px 12px}
44
- .btn-muted{background:rgba(255,255,255,0.03);color:rgba(255,255,255,0.9)}
45
- .small{padding:6px 8px;font-size:13px}
46
- .large{padding:12px 18px;font-size:16px}
47
- .full{width:100%}
48
 
49
- /* hero */
50
- .hero-section{position:relative;min-height:480px;display:flex;align-items:center;justify-content:center;text-align:center;padding:72px 0;background-image:url('assets/hero.jpg');background-size:cover;background-position:center}
51
- .hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(3,6,8,0.5), rgba(2,6,8,0.8))}
52
- .hero-inner{position:relative;z-index:2;max-width:980px;padding:20px}
53
- .hero-title{font-size:44px;line-height:1.05;margin:0 0 12px;font-weight:800;color:white;text-shadow:0 6px 30px rgba(2,6,8,0.6)}
54
- .hero-sub{color:rgba(255,255,255,0.85);max-width:820px;margin:0 auto 18px;font-size:17px}
55
- .hero-ctas{display:flex;gap:12px;justify-content:center}
56
 
57
- /* gemini card */
58
- .gemini-card{display:flex;align-items:center;gap:14px;background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));padding:14px;border-radius:12px;box-shadow:0 10px 30px rgba(2,6,8,0.6);max-width:720px;width:100%}
59
- .gemini-thumb{width:72px;height:72px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(11,177,255,0.08), rgba(11,177,255,0.03))}
60
- .gemini-meta{flex:1}
61
- .gemini-title{margin:0;font-size:18px;font-weight:700;color:#e8f7ff}
62
- .gemini-desc{margin:6px 0 12px;color:var(--muted);font-size:14px}
63
- .gemini-actions{display:flex;gap:8px;flex-wrap:wrap}
64
 
65
- /* modal */
66
- .modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center}
67
- .modal.hidden{display:none}
68
- .modal-backdrop{position:absolute;inset:0;background:rgba(3,6,8,0.6)}
69
- .modal-panel{position:relative;background:linear-gradient(180deg, rgba(4,8,10,0.98), rgba(3,6,8,0.98));border-radius:12px;width:min(1100px,96%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,0.04)}
70
- .modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,0.03)}
71
- .modal-header h3{margin:0;font-size:16px}
72
- .modal-controls{display:flex;gap:8px;align-items:center}
73
- .modal-body{padding:0;background:#041018;flex:1;display:flex;align-items:center;justify-content:center}
74
 
75
- /* iframe container + fallback */
76
- .iframe-container{width:100%;height:100%;min-height:520px;position:relative;display:flex;align-items:center;justify-content:center}
77
- .iframe-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);padding:18px;text-align:center}
78
- .gemini-iframe{width:100%;height:100%;border:0;display:block}
 
 
79
 
80
- /* responsive */
81
- @media (max-width: 980px){
82
- .gemini-card{flex-direction:column;align-items:stretch}
83
- .gemini-thumb{align-self:center}
84
- .modal-panel{width:96%}
85
  }
 
 
 
 
 
 
 
1
+ /* ==========================================
2
+ # File: styles.css
3
+ # Small layer of utilities on top of Tailwind
4
+ # ========================================== */
 
 
 
 
 
 
 
5
 
6
+ :root { --ring: 2px; }
7
+ .nav-link {
8
+ @apply text-sm font-medium text-slate-700 hover:text-primary dark:text-slate-200 dark:hover:text-primary;
 
 
 
9
  }
10
+ .mobile-link {
11
+ @apply px-3 py-2 rounded text-slate-700 dark:text-slate-200 hover:bg-slate-200/60 dark:hover:bg-slate-700/40;
12
+ }
13
+ .btn-primary {
14
+ @apply inline-flex items-center justify-center rounded-lg bg-primary px-5 py-2.5 font-bold text-white shadow hover:opacity-90 focus:outline-none focus-visible:ring-[var(--ring)] focus-visible:ring-primary;
15
+ }
16
+ .btn-secondary {
17
+ @apply inline-flex items-center justify-center rounded-lg bg-white/15 px-5 py-2.5 font-bold text-white ring-1 ring-white/30 hover:bg-white/25 focus:outline-none focus-visible:ring-[var(--ring)] focus-visible:ring-white;
18
+ }
19
+ .pill {
20
+ @apply rounded-lg bg-primary/10 dark:bg-primary/20 px-4 py-3 font-semibold text-primary dark:text-white;
21
+ }
22
+ .h2 { @apply text-3xl sm:text-4xl font-bold tracking-tight; }
23
+ .h3 { @apply text-2xl font-bold; }
24
+ .h4 { @apply text-xl font-bold; }
25
+ .input {
26
+ @apply w-full rounded-lg border border-slate-300 bg-white px-3 py-2 text-slate-900 placeholder:text-slate-500 focus:border-primary focus:ring-primary dark:border-slate-700 dark:bg-slate-900 dark:text-slate-100;
27
+ }
28
+ .label { @apply block text-sm font-medium; }
29
+ .link { @apply text-primary hover:underline; }
30
+ .link.muted { @apply text-slate-500 hover:text-primary dark:text-slate-400; }
31
+ .link-chip { @apply mt-3 inline-flex items-center gap-2 self-start rounded bg-primary/10 px-3 py-1.5 text-sm font-semibold text-primary hover:bg-primary/15; }
32
+ .section { @apply py-16 sm:py-24; }
33
+ .container { @apply mx-auto max-w-7xl px-4 sm:px-6 lg:px-8; }
34
 
35
+ .card {
36
+ @apply flex flex-col gap-2 overflow-hidden rounded-xl border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 p-6 shadow-soft;
37
+ }
38
+ .callout {
39
+ @apply rounded-xl border border-primary/30 bg-primary/10 dark:bg-primary/20 p-8;
40
+ }
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
+ .filter-chip {
43
+ @apply rounded-full px-4 py-2 text-sm font-semibold border border-slate-300 dark:border-slate-600 hover:bg-slate-100 dark:hover:bg-slate-800;
44
+ }
45
+ .filter-chip.active {
46
+ @apply bg-primary text-white border-primary;
47
+ }
 
 
48
 
49
+ .portfolio-card {
50
+ @apply text-left overflow-hidden rounded-xl border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 hover:shadow-lg transition;
51
+ }
52
+ .portfolio-card img {
53
+ @apply w-full aspect-[4/3] object-cover;
54
+ }
 
55
 
56
+ .gallery-card { @apply relative overflow-hidden rounded-xl border border-slate-200 dark:border-slate-700 hover:shadow-lg transition; }
57
+ .gallery-img { @apply w-full aspect-video object-cover; }
58
+ .gallery-caption {
59
+ @apply absolute bottom-0 left-0 right-0 bg-black/50 text-white text-sm px-3 py-2;
60
+ }
 
 
61
 
62
+ .th { @apply p-4 text-left font-bold; }
63
+ .td-section { @apply p-3 font-bold bg-slate-100 dark:bg-slate-800; }
64
+ .td { @apply p-3; }
 
 
 
 
 
 
65
 
66
+ .quote {
67
+ @apply rounded-xl border border-slate-200 dark:border-slate-700 bg-white dark:bg-slate-900 p-6 shadow-soft;
68
+ }
69
+ .about-card {
70
+ @apply p-4 rounded-lg border border-slate-200 dark:border-slate-700 bg-white/70 dark:bg-slate-900/60;
71
+ }
72
 
73
+ .chip {
74
+ @apply inline-flex items-center gap-2 rounded-full border border-slate-300 dark:border-slate-600 px-3 py-1.5 text-sm cursor-pointer select-none;
 
 
 
75
  }
76
+ .chip input { @apply sr-only; }
77
+ .chip span { @apply inline-block; }
78
+ .chip:has(input:checked) { @apply bg-primary text-white border-primary; }
79
+
80
+ /* Active nav state (scroll spy) */
81
+ .nav-link.active { @apply text-primary font-bold; }