/* === GLOBAL === */ :root{ --black:#1a1a1a; --blue:#3d5a80; --red:#bd1e1e; --amber:#f2a900; --white:#ffffff; } html,body{height:100%;} body{ font-family: Tahoma, sans-serif; margin:0; color:#f5f5f5; /* shadowy gray background */ background: #404040; /* center content vertically & horizontally */ display:grid; place-items:center; padding-bottom:80px; /* space so footer doesn't overlap on small screens */ text-align:center; } /* === MAIN === */ main{ max-width: 900px; padding: 40px 20px; } /* === LOGO HEADING === */ h1 { white-space: nowrap; /* keeps "viewport" on one line */ } h1 span { font-weight: 800; font-size: clamp(1.5em, 8vw, 2.5em); /* min, fluid, max */ letter-spacing: .12em; } /* ensure the actual letters stay visible above */ .logo-wrap h1 { position: relative; z-index: 1; } /* adjusts for mobile screens */ @media (max-width: 600px) { .logo-watermark { width: 100%; opacity: 0.15; transform: translate(-50%, -50%); } } @media (max-width: 600px){ .logo-mark{ width: 64px; margin-bottom: 8px; } } @media (max-width: 600px) { h1 span { letter-spacing: 0.05em; } } .article-panel{ background: rgba(0,0,0,.18); /* soft overlay on gray */ border: 1px solid rgba(255,255,255,.07); border-radius: 12px; padding: 22px 26px; box-shadow: 0 6px 24px rgba(0,0,0,.2) inset; } p { font-family: Tahoma, sans-serif; font-size: 0.9em; /* smaller text */ line-height: 1.5; /* better readability */ color: #f2a900; /* consistent with your palette */ margin-top: 10px; margin-bottom: 12px; } /* colored letters */ .v,.w,.black{ color:var(--black); } .i,.e,.blue { color:var(--blue); } .p,.o,.red { color:var(--red); } .r,.t,.gold { color:var(--amber); } /* === FOOTER === */ footer { position: fixed; left: 0; right: 0; bottom: 0; background: #222; border-top: 1px solid #333; color: #f5f5f5; font-size: 14px; padding: 18px 0 10px; display: flex; flex-direction: column; align-items: center; gap: 6px; /* space between footer sections */ } .footer-links a:nth-child(1) { color: var(--amber); } /* home */ .footer-links a:nth-child(2) { color: var(--blue); } /* data */ .footer-links a:nth-child(3) { color: var(--red); } /* writings */ .footer-links a:nth-child(4) { color: var(--blue); } /* creations */ .footer-links a:nth-child(5) { color: var(--amber); } /* links */ .footer-links a:hover { filter: brightness(1.4); transform: translateY(-1px); } .footer-content { display: flex; justify-content: center; align-items: center; gap: 12px; } .dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; border: 1px solid rgba(245, 245, 245, 0.25); box-shadow: 0 0 3px rgba(0, 0, 0, 0.3); transition: box-shadow 0.25s ease, transform 0.2s ease; } .dot.white:hover { box-shadow: 0 0 8px 2px rgba(26, 26, 26, 0.8); transform: scale(1.15); } .dot.blue:hover { box-shadow: 0 0 10px 3px rgba(61, 90, 128, 0.9); transform: scale(1.15); } .dot.red:hover { box-shadow: 0 0 10px 3px rgba(189, 30, 30, 0.9); transform: scale(1.15); } .dot.gold:hover { box-shadow: 0 0 10px 3px rgba(242, 169, 0, 0.9); transform: scale(1.15); } .dot.black{ background:var(--black); } .dot.blue { background:var(--blue); } .dot.red { background:var(--red); } .dot.gold { background:var(--amber); } .neocities-badge img { width: 80px; opacity: 0.8; filter: drop-shadow(0 0 3px rgba(0,0,0,0.3)); transition: opacity 0.25s, transform 0.2s; } .neocities-badge img:hover { opacity: 1; transform: translateY(-2px); } .neocities-badge { display: flex; justify-content: center; align-items: center; transform: translateY(2px); /* nudges badge upward */ } /* === NAVIGATION LINKS === */ .main-links { margin-top: 24px; display: flex; justify-content: center; gap: 28px; font-size: 1.1em; } .main-links a { text-decoration: none; font-weight: bold; transition: color 0.2s ease, transform 0.15s ease; } /* Subtle hover animation */ .main-links a:hover { transform: translateY(-2px); filter: brightness(1.3); } /* global link styling */ a { color: inherit; /* keep your palette-driven color */ text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 3px; text-decoration-thickness: 2px; /* optional */ } /* if you only want underlines in certain areas, target them: */ .footer-links a, .main-links a, .article a { text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 3px; } /* === PROJECT LIST === */ .project-list { display: flex; flex-direction: column; align-items: center; margin-top: 40px; gap: 24px; } .project-link { text-decoration: none; width: 90%; max-width: 600px; transition: transform 0.2s ease, filter 0.2s ease; } /* Center the two lines perfectly inside the card */ .project-card{ background:#222; border:1px solid #333; border-radius:10px; padding: 10px 14px; /* even top/bottom */ color:#f5f5f5; box-shadow:0 0 10px rgba(0,0,0,.25); width:68%; max-width:399; margin:0 auto; /* vertical centering */ display:flex; flex-direction:column; justify-content:center; /* centers title+subtitle vertically */ text-align:center; min-height:110px; /* keeps a steady button height */ } /* Kill default heading/paragraph margins and set consistent gaps */ .project-card h2{ margin:0 0 6px 0; /* small gap to subtitle */ line-height:1.2; } .project-card p{ margin:0; /* remove extra bottom space */ line-height:1.45; } .project-link:hover { transform: translateY(-3px); filter: brightness(1.2); } /* === ARTICLE PAGE === */ .page-title { font-size: 2em; color: var(--amber); margin-bottom: 0.4em; } .page-subtitle { font-size: 1.3em; color: var(--blue); margin-bottom: 1.5em; } .article { max-width: 800px; margin: 0 auto; text-align: left; line-height: 1.6; color: #1a1a1a; } .article p { margin-bottom: 1.2em; } .article-img { display: block; max-width: 100%; height: auto; margin: 24px auto; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.25); } .year-images { display: flex; flex-direction: column; /* stacks them vertically */ align-items: center; gap: 24px; margin: 32px 0; } .year-images img { width: 100%; /* full width of article container */ max-width: 800px; /* prevents stretching too large */ border-radius: 6px; box-shadow: 0 0 8px rgba(0,0,0,0.25); transition: transform 0.2s ease, box-shadow 0.2s ease; } /* Article container */ .article{ max-width: 720px; /* was 800—narrower = easier reading */ margin: 0 auto; text-align: left; line-height: 1.72; } /* Paragraph rhythm */ .article p{ margin: 0 0 1.05em; } /* Headings spacing */ .page-title{ margin: 0 0 .25em; } .page-subtitle{ margin: 0 0 1.25em; } .article .lead{ font-size: 1.08em; color: #e9e9e9; /* slightly brighter if on dark bg */ } /* subtle zoom on hover */ .year-images img:hover, .article-img:hover { transform: scale(1.02); box-shadow: 0 0 12px rgba(0,0,0,0.4); } main, .article { padding-bottom: 120px; /* gives space above the fixed footer */ }
w h a t ' s v i s i b l e f r o m h e r e ?
/* === TAGLINE HOVER GLOW === */ .tagline{ margin-top: 10px; font-size: 1.1em; letter-spacing: .02em; } .tagline span{ display: inline-block; padding: 0 .12em; border-radius: 4px; transition: text-shadow .25s ease, transform .2s ease, background-size .25s ease; /* underline that animates in on hover */ background-image: linear-gradient(currentColor, currentColor); background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px; } /* color-matched glow */ .tagline .black:hover{ text-shadow: 0 0 8px rgba(26,26,26,.45); } .tagline .blue:hover { text-shadow: 0 0 10px rgba(61,90,128,.85); } .tagline .red:hover { text-shadow: 0 0 10px rgba(189,30,30,.9); } .tagline .gold:hover { text-shadow: 0 0 10px rgba(242,169,0,.9); } /* optional: reduce intensity on small screens */ @media (max-width: 480px){ .tagline span:hover{ transform: translateY(-.5px); } .tagline .blue:hover, .tagline .red:hover, .tagline .gold:hover, .tagline .black:hover{ text-shadow: 0 0 8px rgba(0,0,0,.3); } } /* === VIEWPORT LETTER HOVER GLOW with lingering fade === */ h1 span { font-weight: 800; font-size: clamp(1.5em, 8vw, 2.5em); letter-spacing: .12em; transition: text-shadow 0.4s ease-in-out; } /* color glows that gently fade in/out */ h1 .v:hover, h1 .w:hover, h1 .black:hover { text-shadow: 0 0 12px rgba(26, 26, 26, 0.55); } h1 .i:hover, h1 .e:hover, h1 .blue:hover { text-shadow: 0 0 14px rgba(61, 90, 128, 0.95); } h1 .p:hover, h1 .o:hover, h1 .red:hover { text-shadow: 0 0 14px rgba(189, 30, 30, 0.95); } h1 .r:hover, h1 .t:hover, h1 .gold:hover { text-shadow: 0 0 14px rgba(242, 169, 0, 0.95); } @keyframes subtlePulse { 0%, 100% { text-shadow: 0 0 5px rgba(242,169,0,0.2); } 50% { text-shadow: 0 0 15px rgba(242,169,0,0.4); } } .no-underline { text-decoration: none !important; } /* container lets us layer the watermark behind the wordmark */ .logo-wrap { position: relative; display: inline-block; } /* faint V watermark behind "viewport" */ .logo-watermark { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -54%); /* centers and nudges slightly up */ width: 125%; /* a little wider than the text */ max-width: 1600px; /* prevents it from getting too large */ height: auto; opacity: 0.32; /* subtle watermark look */ pointer-events: none; /* ignore clicks */ z-index: 0; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2)); } /* ensure the actual letters stay visible above */ .logo-wrap h1 { position: relative; z-index: 1; } /* adjusts for mobile screens */ @media (max-width: 600px) { .logo-watermark { width: 100%; opacity: 0.15; transform: translate(-50%, -50%); } } @media (max-width: 600px) { h1 { font-size: 1.8em; } h3 { font-size: 1.2em; } p { font-size: 0.95em; line-height: 1.6; } .article { padding: 0 10px; } } img { max-width: 100%; height: auto; display: block; margin: 0 auto; } /* === CREATIONS GALLERY === */ .gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; margin-top: 40px; justify-items: center; align-items: center; } .thumb { display: block; border-radius: 10px; overflow: hidden; transition: transform 0.25s ease, box-shadow 0.25s ease; } .thumb img { width: 100%; height: auto; display: block; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.25); } .thumb:hover { transform: scale(1.04); box-shadow: 0 4px 16px rgba(0,0,0,0.35); } .thumb { display: flex; flex-direction: column; align-items: center; text-align: center; border-radius: 10px; overflow: hidden; transition: transform 0.25s ease, box-shadow 0.25s ease; } .thumb img { width: 100%; height: auto; display: block; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,0.25); } .thumb:hover { transform: scale(1.04); box-shadow: 0 4px 16px rgba(0,0,0,0.35); } figcaption { font-size: 0.70em; color: #f2a900; margin-top: 8px; max-width: 90%; line-height: 1.4; } /* === INDIVIDUAL CREATION PAGES === */ .art-piece { text-align: center; margin-top: 30px; } .art-image { width: 60%; max-width: 400px; height: auto; border-radius: 12px; box-shadow: 0 3px 12px rgba(0,0,0,0.3); transition: transform 0.3s ease, box-shadow 0.3s ease; } .art-image:hover { transform: scale(1.02); box-shadow: 0 5px 18px rgba(0,0,0,0.4); } .art-caption { font-size: 0.8em; color: #f2a900; display: block; text-align: center; margin: 10px auto 0 auto; width: 90%; max-width: 700px; } .video-embed { display: flex; justify-content: center; margin: 40px 0; } .crumbs{ margin: -4px 0 12px; /* pulls it a touch closer to the top */ font-size: .95em; letter-spacing: .02em; color: #555; } .crumbs a{ text-decoration: underline; text-decoration-color: #f2a900; text-underline-offset: 2px; } /* make sure page-specific blocks don’t shove the crumbs down */ main > .crumbs + * { margin-top: 8px; } /* gentle gap after crumbs */ /* === WRITINGS LIST === */ .post-list { list-style: none; padding: 0; margin: 28px auto 0; max-width: 760px; } .post { padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, 0.10); } .post:first-child { border-top: none; } .post-title { display: inline-block; font-weight: 800; text-decoration: none; color: #3d5a80; transition: filter 0.2s ease, transform 0.15s ease; } .post-title:hover { filter: brightness(1.2); text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: 2px; } .post-meta { margin-top: 4px; font-size: 0.9em; color: #f2a900; letter-spacing: 0.02em; } .post-excerpt { margin: 8px 0 0; color: #f2a900; font-size: 0.9em; line-height: 1.6; }