/* =========================================================
   Стили сайта-визитки Аллы Станчевой (grabdata.dev)
   Главные настройки — в :root ниже. Хочешь сменить
   акцентный цвет или шрифт — меняй здесь, в одном месте.
   ========================================================= */

:root {
  --color-bg: #ffffff;          /* фон страницы */
  --color-text: #1a1a1a;        /* основной текст */
  --color-text-muted: #6b7280;  /* приглушённый серый */
  --color-accent: #E0651A;      /* оранжевый акцент (ссылки, кнопки, пин) */
  --color-border: #e5e7eb;      /* линии и рамки */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --space-section: clamp(1.5rem, 4vw, 3rem);
  --radius: 8px;
}

*,*:before,*:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:17px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}
a{color:var(--color-accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}
a:hover{border-bottom-color:var(--color-accent)}

/* --- общие блоки секций --- */
.section{padding-block:var(--space-section)}
.section+.section{border-top:1px solid var(--color-border)}
.container{width:100%;max-width:72rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}
.section-title{font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em;margin:0 0 1.5rem}
.section-lede{max-width:48rem;margin:0 0 2.5rem;color:var(--color-text-muted);font-size:1.0625rem}
.projects .section-lede{max-width:none;text-align:justify;hyphens:auto}

/* --- кнопки --- */
.cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.75rem 1.5rem;background:var(--color-accent);color:#fff;font-weight:600;border-radius:var(--radius);border:1px solid var(--color-accent);text-decoration:none;transition:background-color .15s ease,transform .05s ease}
.cta-button:hover{background:#b8501a;border-bottom-color:transparent}
.cta-button:active{transform:translateY(1px)}

/* --- доступность --- */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
html{scroll-padding-top:1rem}
:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:2px}
.skip-link{position:absolute;left:.5rem;top:-3rem;z-index:1000;padding:.5rem 1rem;background:var(--color-accent);color:#fff;border-radius:var(--radius);transition:top .15s ease}
.skip-link:focus{top:.5rem}

/* --- HERO --- */
.hero{padding-block:clamp(2.5rem,7vw,5rem)}
.hero-grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center;justify-items:center;text-align:center}
.hero-photo{width:clamp(180px,55vw,240px);aspect-ratio:1 / 1;border-radius:50%;overflow:hidden;flex-shrink:0}
.hero-photo img,.hero-photo picture,.hero-photo picture img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}
.hero-headline{font-size:clamp(1.875rem,6vw,3rem);font-weight:700;text-transform:uppercase;letter-spacing:.01em;margin:0 0 .75rem;line-height:1.15}
.hero-role{font-size:clamp(1rem,2.5vw,1.25rem);color:var(--color-text-muted);margin:0 0 .4rem}
.hero-location{display:flex;align-items:center;justify-content:center;gap:.35rem;color:var(--color-text-muted);font-size:clamp(1rem,2.5vw,1.125rem);margin:0 0 1.25rem}
.hero-location-pin{flex-shrink:0;color:var(--color-accent)}
.hero-tagline{font-size:clamp(1rem,2.5vw,1.125rem);margin:0 0 2rem;color:var(--color-text)}
.hero-social{display:flex;gap:.5rem;justify-content:center;margin-top:1.25rem}
.social-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border-radius:var(--radius);color:var(--color-text-muted);transition:color .15s ease,background-color .15s ease}
.social-link:hover{color:var(--color-accent);background:var(--color-surface, rgba(0, 0, 0, .04))}
@media(min-width:768px){.hero-grid{grid-template-columns:minmax(240px,360px) 1fr;gap:clamp(2rem,5vw,4rem);justify-items:start;text-align:left}.hero-photo{width:clamp(240px,30vw,360px)}.hero-social,.hero-location{justify-content:flex-start}}

/* --- PROJECTS --- */
.projects-grid{display:grid;grid-template-columns:1fr;gap:1.5rem}
.project-card{position:relative;border:1px solid var(--color-border);border-radius:var(--radius);padding:clamp(1.25rem,3vw,2rem);display:flex;flex-direction:column;gap:1rem;background:var(--color-bg)}
.project-card-title{font-size:clamp(1.25rem,3vw,1.5rem);font-weight:700;margin:0}
.project-field{display:flex;flex-direction:column;gap:.375rem}
.project-field-label{font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}
.project-field-text{margin:0;color:var(--color-text)}
.project-result{margin:.25rem 0 0;padding-top:.75rem;border-top:1px solid var(--color-border);font-size:1.0625rem;font-weight:700;color:var(--color-accent)}

/* --- SKILLS / STACK --- */
.stack-groups{display:grid;grid-template-columns:1fr;gap:1.5rem}
.stack-group{padding:1.25rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg)}
.stack-group-title{margin:0 0 .75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.875rem}
.stack-group-tagline{margin:0 0 1rem;color:var(--color-text);font-size:.9375rem;line-height:1.5}
.stack-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.625rem 1rem}
.stack-item{display:flex;align-items:center;gap:.5rem;color:var(--color-text);font-size:.9375rem}
.stack-item svg{width:20px;height:20px;flex-shrink:0;color:var(--color-accent)}
.stack .section-lede{max-width:none;text-align:justify;hyphens:auto}
@media(min-width:768px){.stack-groups{grid-template-columns:1fr 1fr;gap:1.5rem}}
@media(min-width:1024px){.stack-groups{grid-template-columns:repeat(2,1fr)}}

/* --- ABOUT / VALUES --- */
.about-text p{margin:0 0 1.25rem;color:var(--color-text);font-size:1.0625rem;line-height:1.65;text-align:justify;hyphens:auto}
.about-text p:last-child{margin-bottom:0}
.values-text p{margin:0 0 1rem;color:var(--color-text);font-size:1.0625rem;line-height:1.65;text-align:justify;hyphens:auto}
.values-text p:last-child{margin:0;color:var(--color-text-muted)}

/* --- окно «написать письмо» --- */
.contact-dialog{width:min(32rem,calc(100vw - 2rem));padding:0;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);box-shadow:0 20px 50px #0000002e}
.contact-dialog::backdrop{background:#00000073}
.contact-form{position:relative;display:flex;flex-direction:column;gap:1rem;padding:clamp(1.5rem,4vw,2rem)}
.contact-dialog-close{position:absolute;top:.5rem;right:.5rem;width:40px;height:40px;border:none;background:transparent;color:var(--color-text-muted);font-size:1.75rem;line-height:1;cursor:pointer;border-radius:var(--radius)}
.contact-dialog-close:hover{color:var(--color-accent);background:#0000000a}
.contact-dialog-title{margin:0;font-size:clamp(1.25rem,3vw,1.5rem);font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.contact-dialog-intro{margin:0;color:var(--color-text-muted);font-size:.9375rem}
.contact-field{display:flex;flex-direction:column;gap:.35rem}
.contact-field-label{font-weight:600;font-size:.9375rem}
.contact-field input,.contact-field textarea{width:100%;padding:.6rem .75rem;font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);resize:vertical}
.contact-field input:focus-visible,.contact-field textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}
.contact-send{align-self:flex-start;margin-top:.25rem}
