@import url('https://fonts.googleapis.com/css2?family=Pacifico&display=swap'); @import './tokens.css'; @font-face { font-family: 'IRANYekanXVF'; src: url('/fonts/IRANYekanXVF.ttf') format('truetype-variations'); font-style: normal; font-weight: 100 1000; font-display: swap; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 100%; scroll-behavior: smooth; color-scheme: light; } html[data-theme="dark"] { color-scheme: dark; } html[data-site-loading='true'] { overflow: hidden; } body { width: 100%; min-width: 320px; background-color: var(--bg-page); color: var(--text-primary); font-family: 'IRANYekanXVF', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-synthesis: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; transition: background-color 0.25s ease, color 0.25s ease; } /* Master 1440px Fixed Canvas */ .desktop-canvas { width: 100%; max-width: var(--layout-frame); min-width: 0; margin: 0 auto; position: relative; background-color: var(--bg-page); overflow: hidden; } /* On ultra-wide viewports let decorative bleed elements escape the canvas. body { overflow-x: hidden } prevents horizontal scrollbars. */ @media (min-width: 1441px) { .desktop-canvas { overflow: visible; } } /* 1320px Inner Content Container with Page Gutters */ .content-container { width: calc(100% - (2 * var(--layout-page-gutter))); max-width: var(--layout-container); margin: 0 auto; position: relative; } @media (max-width: 650px) { .section-header { margin-bottom: var(--space-6); } .section-title { font-size: 1.75rem; line-height: 2.375rem; } .section-underline { width: 5.5rem; } } /* Common Section Header Component Styles */ .section-header { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: 2.5rem; } .section-eyebrow { font-size: var(--font-size-label-small); line-height: var(--line-height-label-small); letter-spacing: var(--letter-spacing-eyebrow); text-transform: uppercase; font-weight: 700; color: var(--text-secondary); margin-bottom: 0.5rem; } .section-title-wrap { position: relative; display: inline-flex; flex-direction: column; } .section-title { max-width: 24ch; font-size: clamp(1.875rem, 3vw, 2.5rem); line-height: 1.15; font-weight: 760; letter-spacing: -0.035em; color: var(--text-primary); margin-bottom: 0.75rem; } .section-underline { width: 7.5rem; height: 3px; background-color: var(--accent-default); border-radius: var(--radius-pill); transform-origin: left center; } /* One-time viewport reveals. Content remains visible when JavaScript is unavailable. */ html[data-motion-ready='true'] [data-reveal] { opacity: 0; transform: translateY(1rem); transition: opacity var(--motion-duration-reveal) var(--motion-ease-out), transform var(--motion-duration-reveal) var(--motion-ease-out); transition-delay: var(--reveal-delay, 0ms); will-change: opacity, transform; } html[data-motion-ready='true'] [data-reveal='soft'] { transform: translateY(0.625rem); } html[data-motion-ready='true'] [data-reveal='scale'] { transform: translateY(0.5rem) scale(0.97); } html[data-motion-ready='true'] [data-reveal='image'] { transform: translateY(0.5rem) scale(0.985); } html[data-motion-ready='true'] [data-reveal][data-visible='true'] { opacity: 1; transform: translateY(0) scale(1); will-change: auto; } html[data-motion-ready='true'] [data-visible='true'] .section-underline { animation: motionUnderline 500ms var(--motion-ease-out) 120ms both; } @keyframes motionUnderline { from { opacity: 0; transform: scaleX(0.25); } to { opacity: 1; transform: scaleX(1); } } /* Pacifico Display Font Class */ .font-display { font-family: 'Pacifico', cursive; font-weight: 400; } /* Pill Button */ .pill-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; height: var(--size-button-height); padding: 0 1.5rem; border-radius: var(--radius-pill); font-size: var(--font-size-button); line-height: var(--line-height-button); font-weight: 600; cursor: pointer; text-decoration: none; transition: color var(--motion-duration-fast) ease, background-color var(--motion-duration-fast) ease, border-color var(--motion-duration-fast) ease, box-shadow var(--motion-duration-default) ease, transform var(--motion-duration-fast) var(--motion-ease-out); border: 1px solid transparent; white-space: nowrap; } .pill-btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; } .pill-btn:active, button:active:not(:disabled) { transform: translateY(1px) scale(0.99); } .pill-btn-outline { background: rgba(255, 255, 255, 0.4); backdrop-filter: blur(10px); border-color: var(--border-default); color: var(--text-primary); } [data-theme="dark"] .pill-btn-outline { background: rgba(9, 28, 63, 0.6); border-color: var(--border-default); color: var(--text-primary); } .pill-btn-primary { background-color: var(--action-primary-bg); color: var(--action-primary-fg); border-color: transparent; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } } a { color: inherit; text-decoration: none; } @media (hover: hover) and (pointer: fine) { .pill-btn-outline:hover { border-color: var(--accent-default); background: rgba(255, 255, 255, 0.7); transform: translateY(-1px); } [data-theme="dark"] .pill-btn-outline:hover { border-color: var(--accent-default); background: rgba(16, 63, 127, 0.8); } .pill-btn-primary:hover { background-color: var(--action-primary-hover); box-shadow: 0 4px 12px var(--shadow-color); transform: translateY(-1px); } }