Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 12318 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Показать содержимое robots.txt
# As a condition of accessing this website, you agree to abide by the following
# content signals:
# (a) If a Content-Signal = yes, you may collect content for the corresponding
# use.
# (b) If a Content-Signal = no, you may not collect content for the
# corresponding use.
# (c) If the website operator does not include a Content-Signal for a
# corresponding use, the website operator neither grants nor restricts
# permission via Content-Signal with respect to the corresponding use.
# The content signals and their meanings are:
# search: building a search index and providing search results (e.g., returning
# hyperlinks and short excerpts from your website's contents). Search does not
# include providing AI-generated search summaries.
# ai-input: inputting content into one or more AI models (e.g., retrieval
# augmented generation, grounding, or other real-time taking of content for
# generative AI search answers).
# ai-train: training or fine-tuning AI models.
# use: how AI systems may consume the content (immediate, reference, or full).
# ANY RESTRICTIONS EXPRESSED VIA CONTENT SIGNALS ARE EXPRESS RESERVATIONS OF
# RIGHTS UNDER ARTICLE 4 OF THE EUROPEAN UNION DIRECTIVE 2019/790 ON COPYRIGHT
# AND RELATED RIGHTS IN THE DIGITAL SINGLE MARKET.
# BEGIN Cloudflare Managed content
User-agent: *
Content-Signal: search=yes,ai-train=no,use=reference
Allow: /
User-agent: Amazonbot
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: CloudflareBrowserRenderingCrawler
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: GPTBot
Disallow: /
User-agent: meta-externalagent
Disallow: /
# END Cloudflare Managed Content
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Vivi Qin — Editorial Direction</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,450;0,9..144,600;1,9..144,450&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="assets/editor.css">
<style>
:root{
--bg: #faf5ee;
--paper: #fffdfa;
--ink: #221d19;
--muted: #857a6d;
--accent: #c1502e;
--line: #e7dcca;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
background:var(--bg);
color:var(--ink);
font-family:'Inter',sans-serif;
-webkit-font-smoothing:antialiased;
}
.wrap{max-width:1180px;margin:0 auto;padding:0 48px;}
header{
display:flex;align-items:center;justify-content:space-between;
padding:36px 48px; max-width:1180px; margin:0 auto;
}
.brand{font-family:'Fraunces',serif; font-size:20px; letter-spacing:.02em;}
nav a{color:var(--ink);text-decoration:none;font-size:14px;margin-left:32px;letter-spacing:.03em;}
nav a.cta{border:1px solid var(--ink);padding:8px 18px;border-radius:999px;}
.hero{ padding-top:64px; padding-bottom:96px; }
.hero .index{ font-size:13px; letter-spacing:.18em; color:var(--accent); text-transform:uppercase; margin-bottom:22px; font-weight:600;}
.hero h1{
font-family:'Fraunces',serif;
font-weight:450;
font-size:88px;
line-height:0.98;
margin:0 0 28px;
letter-spacing:-0.01em;
}
.hero h1 em{font-style:italic; color:var(--accent); font-weight:450;}
.hero-grid{display:grid; grid-template-columns:1.3fr 0.7fr; gap:64px; align-items:end;}
.hero p.lede{
font-size:20px; line-height:1.6; color:#463d35; max-width:52ch; margin:0 0 28px;
}
.hero .links{display:flex; gap:14px; flex-wrap:wrap;}
.hero .links a{
font-size:13px; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--line);
padding-bottom:2px;
}
.portrait-frame{
position:relative; border-radius:4px; overflow:hidden; aspect-ratio: 4/5;
background:#efe6d8;
}
.portrait-frame img{width:100%;height:100%;object-fit:cover; filter:sepia(8%) saturate(92%);}
.portrait-tag{
position:absolute; bottom:16px; left:16px; background:var(--paper);
padding:8px 14px; font-size:12px; letter-spacing:.05em; border-radius:3px;
box-shadow:0 8px 20px rgba(0,0,0,.08);
}
section.work{padding-top:40px; padding-bottom:120px;}
.section-head{
display:flex; justify-content:space-between; align-items:baseline;
border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:8px;
}
.section-head h2{font-family:'Fraunces',serif; font-weight:450; font-size:34px; margin:0;}
.section-head span{color:var(--muted); font-size:13px;}
.about-section{padding-top:40px; padding-bottom:100px;}
.about-section .section-head{margin-bottom:28px;}
.about-p{font-size:16px; line-height:1.75; color:#544b41; max-width:64ch; margin:0 0 18px;}
.case{
display:grid; grid-template-columns: 90px 1fr 1.15fr; gap:40px;
padding:56px 0; border-bottom:1px solid var(--line);
align-items:center; text-decoration:none; color:inherit;
}
.case:hover .cover img{transform:scale(1.035);}
.case .num{font-family:'Fraunces',serif; font-size:20px; color:var(--muted); font-style:italic;}
.case .meta h3{font-family:'Fraunces',serif; font-weight:450; font-size:32px; margin:0 0 10px;}
.case .meta .role{font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-bottom:14px; font-weight:600;}
.case .meta p{font-size:15px; line-height:1.65; color:#544b41; max-width:44ch; margin:0 0 16px;}
.case .meta .tags{display:flex; gap:8px; flex-wrap:wrap;}
.case .meta .tags span{font-size:11px; color:var(--muted); border:1px solid var(--line); padding:4px 10px; border-radius:999px;}
.cover{
aspect-ratio:16/10.5; border-radius:6px; overflow:hidden; background:#fff;
box-shadow:0 20px 45px -20px rgba(60,45,25,.35);
}
.cover img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease; display:block;}
footer{padding:60px 48px 80px; border-top:1px solid var(--line); text-align:center;}
footer .fname{font-family:'Fraunces',serif; font-size:22px; margin-bottom:10px;}
footer .fmeta{font-size:13px; color:var(--muted);}
@media (max-width:900px){
.hero-grid{grid-template-columns:1fr;}
.hero h1{font-size:56px;}
.case{grid-template-columns:1fr; gap:18px;}
.case .num{display:none;}
}
@media (max-width:640px){
.wrap{padding:0 20px;}
header{padding:22px 20px; flex-wrap:wrap; row-gap:12px;}
nav{width:100%; display:flex; justify-content:space-between; align-items:center;}
nav a{margin-left:0; font-size:13px;}
nav a.cta{padding:7px 14px;}
.hero{padding-top:36px; padding-bottom:56px;}
.hero h1{font-size:36px;}
.hero p.lede{font-size:16px;}
.hero-grid{gap:32px;}
.case{padding:36px 0;}
.case .meta h3{font-size:24px;}
.section-head h2{font-size:26px;}
footer{padding:40px 20px 56px;}
}
</style>
</head>
<body>
<header>
<div class="brand">Vivi Qin</div>
<nav>
<a href="#work">Work</a>
<a href="#about">About</a>
<a href="daily.html">Daily</a>
<a class="cta" href="resume.pdf" target="_blank" rel="noopener">Résumé</a>
</nav>
</header>
<div class="wrap hero">
<div class="hero-grid">
<div>
<div class="index" data-field="hub__index">Product & Visual Designer — Bay Area</div>
<h1 data-field="hub__h1">I design<br/>calm, <em>considered</em><br/>products.</h1>
<p class="lede" data-field="hub__lede">Ten years moving between animation, illustration, and product — I bring a maker's eye for craft to research-driven UX. Currently designing the visual studio at Huhu AI.</p>
<div class="links">
<a href="mailto:info@viviqin.com">Email</a>
<a href="#">LinkedIn</a>
<a href="resume.pdf" target="_blank" rel="noopener">Résumé (PDF)</a>
</div>
</div>
<div class="portrait-frame" data-image-slot="hub__portrait">
<img src="images/portrait.png" alt="Vivi Qin portrait" />
<div class="portrait-tag" data-field="hub__portrait_tag">San Francisco, CA</div>
</div>
</div>
</div>
<section class="work wrap" id="work">
<div class="section-head">
<h2 data-field="hub__work_h2">Selected Work</h2>
<span data-field="hub__work_years">2022 — Present</span>
</div>
<a class="case" href="https://huhu.ai" target="_blank" rel="noopener">
<div class="num">01</div>
<div class="meta">
<h3 data-field="hub__case_huhu__h3">Huhu AI Studio</h3>
<div class="role" data-field="hub__case_huhu__role">Head of Visual Design</div>
<p data-field="hub__case_huhu__p">Enterprise studio for generating on-brand model imagery and virtual try-ons at scale — from proof of concept to pilot.</p>
<div class="tags"><span>Figma</span><span>Notion</span><span>Q1–Q2</span></div>
</div>
<div class="cover" data-image-slot="hub__cover_huhu"><img src="images/huhu_hero.png" alt="Huhu AI studio"/></div>
</a>
<a class="case" href="foodiee.html">
<div class="num">02</div>
<div class="meta">
<h3 data-field="hub__case_foodiee__h3">Foodiee</h3>
<div class="role" data-field="hub__case_foodiee__role">Product Designer · 12 weeks</div>
<p data-field="hub__case_foodiee__p">A home-cooking companion that folds grocery delivery and recipe discovery into one warm, low-friction flow.</p>
<div class="tags"><span>Figma</span><span>Miro</span><span>0→1</span></div>
</div>
<div class="cover" data-image-slot="hub__cover_foodiee"><img src="images/foodie_hero.png" alt="Foodiee"/></div>
</a>
<a class="case" href="vellbeing.html">
<div class="num">03</div>
<div class="meta">
<h3 data-field="hub__case_vellbeing__h3">Vellbeing</h3>
<div class="role" data-field="hub__case_vellbeing__role">Product Designer · Nov–Dec 2022</div>
<p data-field="hub__case_vellbeing__p">Refining an early-stage wellness marketplace's request flow and dashboard ahead of an investor pilot.</p>
<div class="tags"><span>Figma</span><span>0→MVP</span></div>
</div>
<div class="cover" data-image-slot="hub__cover_vellbeing"><img src="images/vellbeing_hero.png" alt="Vellbeing"/></div>
</a>
<a class="case" href="neptune.html">
<div class="num">04</div>
<div class="meta">
<h3 data-field="hub__case_neptune__h3">Neptune</h3>
<div class="role" data-field="hub__case_neptune__role">UX Researcher / Designer · 6 weeks</div>
<p data-field="hub__case_neptune__p">Turning two years of a free-user base into a subscription funnel, without breaking the core listening experience.</p>
<div class="tags"><span>Figma</span><span>Research</span></div>
</div>
<div class="cover" data-image-slot="hub__cover_neptune"><img src="images/neptune_hero.png" alt="Neptune"/></div>
</a>
<a class="case" href="gallerypal.html">
<div class="num">05</div>
<div class="meta">
<h3 data-field="hub__case_gallerypal__h3">GalleryPal</h3>
<div class="role" data-field="hub__case_gallerypal__role">UX Design · 5-day sprint</div>
<p data-field="hub__case_gallerypal__p">A camera-first companion for gallery visitors who want context on a piece without joining a tour group.</p>
<div class="tags"><span>Figma</span><span>Solo sprint</span></div>
</div>
<div class="cover" data-image-slot="hub__cover_gallerypal"><img src="images/gallery_pal_hero.png" alt="GalleryPal"/></div>
</a>
</section>
<section class="about-section wrap" id="about">
<div class="section-head">
<h2 data-field="hub__about_h2">About</h2>
</div>
<div data-sections-zone="about" data-page="hub"></div>
</section>
<footer>
<div class="fname" data-field="global__footer_name">Vivi Qin</div>
<div class="fmeta" data-field="global__footer_meta">info@viviqin.com · Illustrator turned product designer, Bay Area</div>
</footer>
<script src="assets/editor.js" defer></script>
</body>
</html>