@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');

:root{
  --paper:#fff8f1;
  --paper2:#fffdf8;
  --gold:#dc8746;
  --red:#d65343;
  --wine:#79251f;
  --wine-dark:#5f1714;
  --text:#58372f;
  --muted:#8d6b60;
  --line:rgba(121,37,31,.12);
  --shadow:0 28px 80px rgba(83,31,20,.14);
  --soft-shadow:0 18px 46px rgba(83,31,20,.11);
  --radius:30px;
  --container:min(1280px,90vw);
  --scroll-progress:0;
  --deep-alpha:.05;
  --warm-alpha:.22;
  --spot1-x:20%;
  --spot1-y:6%;
  --spot2-x:84%;
  --spot2-y:24%;
  --header-blur:16px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;background:#fff9f3}
body{
  margin:0;
  position:relative;
  min-height:100vh;
  overflow-x:hidden;
  font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at var(--spot1-x) var(--spot1-y), rgba(255,255,255,.90) 0 11%, transparent 34%),
    radial-gradient(circle at var(--spot2-x) var(--spot2-y), rgba(255,221,198,var(--warm-alpha)) 0 15%, transparent 38%),
    radial-gradient(circle at 72% 92%, rgba(87,16,15,var(--deep-alpha)) 0 18%, transparent 44%),
    linear-gradient(180deg,#fffdf8 0%,#fff7ef 18%,#f4d3c5 42%,#d87768 68%,#8e2e29 88%,#651916 100%);
  background-attachment:scroll;
  isolation:isolate;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.105;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E");
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 26%,rgba(255,255,255,.42),transparent 32%),
    radial-gradient(circle at 82% 74%,rgba(95,23,20,.11),transparent 42%);
  transform:translateY(calc(var(--scroll-progress) * -34px));
  transition:opacity .25s ease;
}

a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font-family:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.container{width:var(--container);margin:0 auto}.narrow{max-width:980px}.center{text-align:center}
section,footer{scroll-margin-top:124px}
main{position:relative;isolation:isolate}
main>section,main>footer{position:relative;z-index:3;background:transparent}

#threadCanvas{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.82;mix-blend-mode:multiply}.home-page main{overflow:hidden}

.site-header{position:fixed;left:50%;top:22px;transform:translateX(-50%);z-index:400;width:min(1340px,92%);min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px 22px;border-radius:30px;background:rgba(255,250,246,.93);border:1px solid rgba(121,37,31,.08);box-shadow:0 18px 60px rgba(85,32,21,.12);backdrop-filter:blur(var(--header-blur));transition:min-height .25s ease,box-shadow .25s ease,background .25s ease}.site-header.is-scrolled{min-height:72px;background:rgba(255,250,246,.97);box-shadow:0 16px 48px rgba(85,32,21,.16)}
.site-brand{display:flex;align-items:center;gap:17px;min-width:300px}.brand-yarn{width:70px;height:70px;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(91,32,18,.24));transform:rotate(-8deg);transition:.25s ease}.site-header.is-scrolled .brand-yarn{width:60px;height:60px}.site-brand strong{display:block;font-family:"Playfair Display",serif;color:var(--wine);font-size:34px;line-height:1}.site-brand span{display:block;margin-top:3px;color:var(--muted);font-size:13px}.site-nav{display:flex;align-items:center;gap:18px;font-weight:800;font-size:14px;white-space:nowrap}.site-nav a:hover,.site-nav a.active{color:var(--red)}.header-auth{display:flex;gap:10px;align-items:center;justify-content:flex-end;min-width:220px}
.primary-btn,.secondary-btn,.danger-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:17px;padding:14px 24px;font-weight:800;line-height:1.1;transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,background .22s ease;border:0;min-height:50px}.primary-btn{background:linear-gradient(135deg,var(--gold),var(--red));color:#fff;box-shadow:0 16px 36px rgba(184,67,50,.22)}.secondary-btn{background:rgba(255,255,255,.88);color:var(--wine);border:1px solid rgba(121,37,31,.15)}.danger-btn{background:rgba(121,37,31,.10);color:var(--wine);border:1px solid rgba(121,37,31,.06)}.compact-btn{padding:12px 17px;border-radius:15px;font-size:14px;white-space:nowrap}.primary-btn:hover,.secondary-btn:hover,.danger-btn:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(83,31,20,.16)}.primary-btn:active,.secondary-btn:active,.danger-btn:active{transform:translateY(0)}

.hero-section{min-height:960px;padding:170px 6vw 116px;display:grid;place-items:center;text-align:center}.hero-copy{z-index:8;max-width:900px;margin:0 auto}.hero-kicker{margin:0 0 20px!important;text-transform:uppercase;letter-spacing:.17em;font-size:12px!important;font-weight:900;color:#b45a40}.hero-copy h1{margin:0 auto;font-family:"Playfair Display",serif;color:var(--wine);font-size:clamp(70px,7.2vw,126px);line-height:.92;letter-spacing:-.05em;text-wrap:balance;text-shadow:0 0 32px rgba(255,250,246,.58)}.hero-copy>p:not(.hero-kicker):not(.hero-note){margin:30px auto 28px;max-width:720px;font-size:clamp(18px,1.45vw,24px);line-height:1.65}.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.hero-note{margin:28px 0 0;font-family:"Playfair Display",serif;color:var(--wine);font-size:clamp(28px,2.9vw,44px);line-height:1.2}.hero-yarn-anchor{position:absolute;z-index:7;left:50%;top:calc(50% + 252px);transform:translateX(-50%);width:172px;height:172px;display:grid;place-items:center;pointer-events:none}.hero-yarn-ball{width:158px;filter:drop-shadow(0 32px 45px rgba(67,22,14,.26));animation:yarnFloat 5.5s ease-in-out infinite}@keyframes yarnFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}

.section{padding:108px 0}.section-heading{max-width:1040px;margin:0 auto 54px}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:#b86245;font-size:12px;font-weight:900;margin:0 0 18px}.eyebrow.center{text-align:center}h2{font-family:"Playfair Display",serif;color:var(--wine);font-size:clamp(44px,4.4vw,74px);line-height:1.05;margin:0 0 28px;text-align:center;letter-spacing:-.025em;text-wrap:balance;text-shadow:0 0 28px rgba(255,248,241,.72)}.section-lead{font-size:21px;line-height:1.72;max-width:820px;margin:0}.section-lead.center{margin:0 auto;text-align:center}

.about-grid{display:grid;grid-template-columns:.75fr 1fr;gap:70px;align-items:start}.section-intro h2{text-align:left}.about-copy>p{font-size:21px;line-height:1.8;margin:0 0 30px}.about-points{display:grid;gap:14px}.about-points article{display:grid;grid-template-columns:58px 1fr;column-gap:18px;align-items:start;padding:22px 24px;border-radius:24px;background:rgba(255,248,241,.76);border:1px solid rgba(121,37,31,.07);box-shadow:var(--soft-shadow)}.about-points span{grid-row:1/3;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(121,37,31,.09);color:var(--wine);font-weight:900}.about-points strong{color:var(--wine);font-size:18px}.about-points p{margin:6px 0 0;line-height:1.6}

.stats-section{padding-top:104px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.metric-grid article,.flow-grid article,.cards-grid>article,.empty-card,.concept-card,.family-card,.form-card,.research-insights article,.tree-person,.album-card,.method-card,.trust-grid article,.account-card,.album-help,.tree-help,.concept-main-card,.concept-route div,.concept-split article,.about-points article{background:rgba(255,248,241,.82);border:1px solid rgba(121,37,31,.08);box-shadow:var(--soft-shadow);backdrop-filter:blur(8px)}.metric-grid article,.flow-grid article,.cards-grid>article,.empty-card,.concept-card,.family-card,.form-card,.research-insights article,.tree-person,.album-card,.method-card,.trust-grid article,.account-card,.album-help,.tree-help,.concept-main-card,.concept-route div,.concept-split article{padding:30px;border-radius:var(--radius)}.metric-grid span{display:block;font-family:"Playfair Display",serif;color:var(--wine);font-size:52px;line-height:1;margin-bottom:12px}.metric-grid p{margin:0;font-weight:800;line-height:1.45}.metric-grid small{display:block;margin-top:12px;color:var(--muted);line-height:1.45}.method-card{margin:24px auto 0;max-width:980px;line-height:1.65}.method-card strong{color:var(--wine)}.research-insights{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}.research-insights strong,.trust-grid h3{display:block;color:var(--wine);font-size:19px;margin-bottom:10px}.research-insights p,.trust-grid p{margin:0;line-height:1.65}

.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.flow-grid b{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--red));color:#fff;margin-bottom:18px}.flow-grid h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:29px;margin:0 0 10px}.flow-grid p{margin:0;line-height:1.65}

.trust-panel{display:grid;grid-template-columns:.9fr 1.15fr;gap:34px;align-items:center;padding:34px;border-radius:36px;background:rgba(255,248,241,.50);border:1px solid rgba(121,37,31,.06);box-shadow:var(--soft-shadow);backdrop-filter:blur(8px)}.trust-panel h2{text-align:left;font-size:clamp(40px,3.6vw,62px)}.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.trust-grid article{padding:24px;border-radius:24px;box-shadow:none;background:rgba(255,255,255,.58)}

.product-grid{display:grid;grid-template-columns:.92fr 1fr;gap:70px;align-items:center}.family-card{max-width:480px;margin-top:30px}.family-card p{font-weight:800}.family-actions{display:flex;gap:12px;flex-wrap:wrap}.family-card button{border:0;border-radius:14px;background:var(--red);color:#fff;padding:12px 18px;font-weight:800;cursor:pointer}.form-card{display:grid;gap:18px}.form-card h3,.album-help h3,.tree-help h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:30px;margin:0 0 6px}.form-card label{font-weight:800;color:var(--wine)}input,select,textarea{width:100%;border:1px solid rgba(121,37,31,.16);background:rgba(255,255,255,.94);border-radius:16px;padding:15px 16px;color:var(--text);font-size:16px}textarea{min-height:130px;resize:vertical}.file-label{display:grid;gap:9px;padding:14px 16px;border:1px dashed rgba(121,37,31,.2);border-radius:18px;background:rgba(255,255,255,.55)}.file-label input{border:0;background:transparent;padding:0}.question-result{margin-top:4px;padding:30px;border-radius:24px;background:#fff}.question-result p{margin:0;font-family:"Playfair Display",serif;color:var(--wine);font-size:30px;line-height:1.3}.rating-box{margin-top:20px}.rating-buttons{display:flex;gap:10px;margin-top:10px}.rating-buttons button{border:0;border-radius:12px;background:rgba(121,37,31,.10);color:var(--wine);font-weight:900;padding:10px 14px}

.memory-progress{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:-10px 0 32px}.memory-progress p{padding:14px 22px;border-radius:999px;background:rgba(255,249,242,.75);font-weight:800}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.cards-grid h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:29px;line-height:1.1;margin:0 0 12px}.cards-grid p{line-height:1.65}.card-meta,.album-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.card-meta span,.album-tag{font-size:13px;font-weight:800;color:var(--wine);background:rgba(121,37,31,.08);padding:8px 11px;border-radius:999px}.card-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.card-photo{width:100%;height:220px;object-fit:cover;border-radius:22px;margin-bottom:18px}

.practices-layout{display:grid;gap:18px}.practices-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.practices-compact{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.practice-card{padding:24px;border-radius:26px;background:rgba(255,248,241,.82);border:1px solid rgba(121,37,31,.08);box-shadow:var(--soft-shadow);display:grid;gap:14px}.practice-card h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:28px;margin:0;line-height:1.1}.practice-card p{margin:0;line-height:1.6}.practice-card.featured{min-height:250px;padding:30px}.practice-card.featured h3{font-size:32px}.practice-card.compact{grid-template-columns:1fr auto;align-items:center}.practice-card.compact p{font-size:15px}.practice-card.compact .card-meta{grid-column:1/-1;margin-top:0}.practice-action{width:100%;border-radius:15px;min-height:48px}.practice-card.compact .practice-action{width:auto;min-width:132px}.practice-action.done{background:rgba(121,37,31,.10);color:var(--wine);border:1px solid rgba(121,37,31,.12);box-shadow:none}

.team-heading{display:grid;grid-template-columns:.55fr 1fr;gap:34px;align-items:end;margin-bottom:34px}.team-heading h2{text-align:left;margin:0}.team-heading p:last-child{font-size:20px;line-height:1.7;margin:0;max-width:690px}.team-list{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.team-list article{display:flex;flex-direction:column;gap:16px;min-width:0;padding:18px;border-radius:28px;background:rgba(255,248,241,.82);border:1px solid rgba(121,37,31,.08);box-shadow:var(--soft-shadow)}.team-list img{width:100%;aspect-ratio:1/1.08;object-fit:cover;border-radius:22px;box-shadow:0 14px 34px rgba(83,31,20,.12);filter:grayscale(1) sepia(.05) contrast(1.08) brightness(.97)}.team-list h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:25px;line-height:1.1;margin:0 0 8px}.team-list article p{margin:0;color:var(--muted);font-weight:800;line-height:1.45}.team-list blockquote{font-family:"Playfair Display",serif;color:var(--wine);font-size:19px;line-height:1.35;margin:16px 0}.team-list a{display:block;margin:8px 0 0;font-weight:800;color:var(--wine);font-size:14px;overflow-wrap:anywhere}

.site-footer{padding:95px 0 110px;color:#fff}.footer-grid{display:grid;grid-template-columns:1fr .9fr;gap:80px}.footer-script{font-family:"Playfair Display",serif;font-size:43px;line-height:1.25;margin:0 0 26px}.site-footer h3{font-family:"Playfair Display",serif;font-size:38px;margin:0 0 12px}.site-footer p{line-height:1.72}.footer-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px}.footer-links a{font-weight:800}

body:not(.home-page) main{min-height:100vh}.page-hero{padding:165px 0 60px}.page-hero h1{font-family:"Playfair Display",serif;text-align:center;font-size:clamp(52px,5.8vw,82px);line-height:1;color:var(--wine);margin:0 0 22px;text-wrap:balance}.page-hero p{text-align:center;max-width:880px;margin:0 auto;font-size:21px;line-height:1.72}.page-section{padding:56px 0 120px}.map-layout{display:grid;grid-template-columns:.92fr 1.08fr;gap:34px;align-items:start}.map-box{height:560px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow);background:#fff}.map-placeholder{height:100%;display:grid;place-items:center;text-align:center;padding:34px;font-weight:800;color:var(--wine);line-height:1.6;background:linear-gradient(135deg,rgba(255,250,246,.96),rgba(246,220,209,.78))}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.hint{color:var(--muted);font-size:14px;line-height:1.55;margin:0}.detail-photo{width:100%;max-height:560px;object-fit:cover;border-radius:28px;margin-bottom:26px}.story-detail-card{text-align:left}.album-layout,.tree-layout,.account-grid{display:grid;grid-template-columns:.9fr .75fr;gap:34px;align-items:start}.album-help,.tree-help{min-height:100%;display:flex;flex-direction:column;justify-content:center}.account-grid{grid-template-columns:1fr 1fr}.account-members{grid-column:1/-1}.account-card h2{font-size:34px;text-align:left;margin-bottom:8px}.account-info{display:grid;gap:12px}.account-row,.member-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(121,37,31,.10);min-width:0}.account-row strong,.member-row strong{color:var(--wine);overflow-wrap:anywhere;text-align:right}.member-row strong{text-align:left}.account-actions{display:flex;gap:12px;flex-wrap:wrap}.account-actions .secondary-btn,.account-actions .danger-btn{flex:1 1 200px}#familyEditForm{display:grid;gap:12px}#familyEditForm .primary-btn{width:100%;margin-top:2px}.member-list{display:grid;gap:6px}

.album-card h3,.tree-person h4{font-family:"Playfair Display",serif;color:var(--wine);font-size:30px;margin:0 0 10px}.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tree-board{display:grid;gap:30px;margin-top:36px}.tree-generation h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:34px;margin:0 0 18px}.tree-generation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.tree-person{position:relative;overflow:hidden}.tree-person::before{content:"";position:absolute;left:50%;top:-30px;width:2px;height:30px;background:rgba(121,37,31,.22)}.tree-person h4{font-family:"Playfair Display",serif;color:var(--wine);font-size:30px;margin:0 0 10px}

.concept-layout{display:grid;gap:24px}.concept-main-card{display:grid;grid-template-columns:230px 1fr;gap:34px;align-items:center}.concept-main-card img{width:210px;filter:drop-shadow(0 24px 35px rgba(83,31,20,.22))}.concept-main-card span{display:inline-block;text-transform:uppercase;letter-spacing:.17em;color:#b86245;font-size:12px;font-weight:900;margin-bottom:12px}.concept-main-card h2{text-align:left;font-size:clamp(38px,4vw,64px);margin-bottom:16px}.concept-main-card p{font-size:20px;line-height:1.7}.concept-route{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.concept-route div{position:relative;box-shadow:var(--soft-shadow);padding:24px}.concept-route b{display:block;color:#b86245;margin-bottom:10px}.concept-route strong{display:block;color:var(--wine);font-size:20px;margin-bottom:8px}.concept-route p{margin:0;line-height:1.55}.concept-split,.concept-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.concept-split h3,.concept-card h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:31px;margin:0 0 12px}.concept-split p,.concept-card p{line-height:1.7}

.admin-shell{max-width:900px;margin:0 auto}.admin-actions{display:flex;gap:12px;flex-wrap:wrap}.auth-body{min-height:100vh}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 560px}.auth-hero{padding:90px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.auth-brand{position:static;transform:none;background:transparent;border:0;box-shadow:none;padding:0;margin-bottom:24px}.auth-hero h1{font-family:"Playfair Display",serif;color:var(--wine);font-size:70px;line-height:1;margin:24px 0}.auth-hero p{font-size:22px;line-height:1.75}.auth-card{align-self:center;margin:36px;padding:38px;border-radius:30px;background:rgba(255,248,241,.94);box-shadow:var(--shadow);display:grid;gap:18px}.auth-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.auth-tabs button{border:0;border-radius:16px;background:#fff;color:var(--wine);font-weight:800;padding:14px;cursor:pointer}.auth-tabs .active{background:linear-gradient(135deg,var(--gold),var(--red));color:#fff}.auth-card form{display:grid;gap:14px}.auth-card form button{border:0;border-radius:18px;background:linear-gradient(135deg,var(--gold),var(--red));color:#fff;font-weight:800;padding:15px;cursor:pointer}.form-message{color:var(--wine);font-weight:800}.admin-note{padding:16px;border-radius:18px;background:rgba(121,37,31,.07);line-height:1.55}

.reveal-block,.reveal-item{opacity:0;transform:translateY(28px);transition:opacity .78s cubic-bezier(.22,1,.36,1), transform .78s cubic-bezier(.22,1,.36,1)}.reveal-block.is-visible,.reveal-item.is-visible{opacity:1;transform:translateY(0)}.reveal-item{transition-delay:var(--reveal-delay,0ms)}

@media(max-width:1340px){.team-list{grid-template-columns:repeat(3,1fr)}.site-nav{gap:13px;font-size:13px}.site-brand{min-width:280px}.brand-yarn{width:62px;height:62px}.site-brand strong{font-size:31px}}
@media(max-width:1240px){.site-nav{display:none}.header-auth{min-width:0}.hero-section{min-height:880px;padding-top:138px}.metric-grid,.flow-grid{grid-template-columns:repeat(2,1fr)}.research-insights,.cards-grid,.trust-grid,.tree-generation-grid,.album-grid{grid-template-columns:repeat(2,1fr)}.product-grid,.map-layout,.footer-grid,.concept-main-card,.album-layout,.tree-layout,.about-grid,.trust-panel{grid-template-columns:1fr}.section-intro h2,.trust-panel h2{text-align:center}.section-lead{margin-left:auto;margin-right:auto;text-align:center}.family-card{margin-left:auto;margin-right:auto}.concept-route{grid-template-columns:repeat(2,1fr)}.account-grid{grid-template-columns:1fr}.team-heading{grid-template-columns:1fr;text-align:center}.team-heading h2{text-align:center}.team-list{grid-template-columns:repeat(2,1fr)}.practices-featured,.practices-compact{grid-template-columns:1fr 1fr}}
@media(max-width:760px){section,footer{scroll-margin-top:96px}.site-header{top:8px;width:min(94%,680px);min-height:66px;padding:10px 14px;border-radius:22px}.brand-yarn{width:48px!important;height:48px!important}.site-brand{min-width:0;gap:10px}.site-brand strong{font-size:25px}.site-brand span{display:none}.header-auth .secondary-btn{display:none}.compact-btn{font-size:13px;padding:11px 14px}.hero-section{min-height:820px;padding:118px 7vw 96px}.hero-copy h1{font-size:54px}.hero-copy>p:not(.hero-kicker):not(.hero-note){font-size:18px}.hero-actions a{width:100%}.hero-yarn-anchor{top:calc(50% + 250px);width:132px;height:132px}.hero-yarn-ball{width:124px}.hero-note{font-size:27px}.section{padding:76px 0}.metric-grid,.flow-grid,.research-insights,.cards-grid,.trust-grid,.tree-generation-grid,.concept-grid,.concept-route,.concept-split,.album-grid,.team-list,.practices-featured,.practices-compact{grid-template-columns:1fr}h2{font-size:42px}.question-result p{font-size:25px}.page-hero{padding-top:118px}.form-row{grid-template-columns:1fr}.map-box{height:390px}.auth-hero h1{font-size:48px}.auth-hero{padding:28px}.auth-card{padding:24px}.team-list h3{font-size:29px}.team-list blockquote{font-size:21px}.footer-script{font-size:33px}.site-footer{padding-bottom:80px}.practice-card.compact{grid-template-columns:1fr}.practice-card.compact .practice-action{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-yarn-ball{animation:none}.reveal-block,.reveal-item{opacity:1!important;transform:none!important;transition:none!important}.primary-btn,.secondary-btn,.danger-btn{transition:none}}

/* =========================
   v7 regression-safe visual rebuild
   ========================= */
:root{
  --doc-height:100vh;
  --grain-opacity:.18;
  --thread-dark:#7a201b;
  --thread-mid:#a33c2e;
  --thread-light:#ffe7cf;
}
body{
  background:#fffdf8!important;
}
body::before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  height:var(--doc-height,100%);
  min-height:100%;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 8%, rgba(255,255,255,.88) 0 9%, transparent 30%),
    radial-gradient(circle at 84% 23%, rgba(255,228,207,.62) 0 14%, transparent 38%),
    radial-gradient(circle at 20% 47%, rgba(242,176,148,.34) 0 13%, transparent 36%),
    radial-gradient(circle at 78% 72%, rgba(124,35,29,.27) 0 18%, transparent 45%),
    linear-gradient(180deg,
      #fffdf8 0%,
      #fff9f1 16%,
      #f8e1d3 34%,
      #e8ad98 54%,
      #bd5b4f 73%,
      #812822 88%,
      #5f1714 100%);
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:var(--grain-opacity);
  mix-blend-mode:multiply;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='170' height='170' viewBox='0 0 170 170'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='170' height='170' filter='url(%23n)' opacity='.34'/%3E%3C/svg%3E"),
    radial-gradient(circle at calc(18% + var(--scroll-progress) * 8%) calc(18% + var(--scroll-progress) * 30%), rgba(255,255,255,.38), transparent 34%),
    radial-gradient(circle at calc(84% - var(--scroll-progress) * 18%) calc(74% - var(--scroll-progress) * 8%), rgba(255,222,197,.16), transparent 36%);
}
main,.site-header{position:relative}.home-page main{overflow:visible}.home-page main>section,.home-page main>footer{position:relative;z-index:3;background:transparent}
#threadCanvas{z-index:2!important;opacity:.98!important;mix-blend-mode:normal!important}

/* Header as the only yarn origin */
.site-header{min-height:92px;padding:12px 24px;border-radius:32px;background:rgba(255,250,246,.94)}
.site-header.is-scrolled{min-height:78px}.site-brand{gap:20px;min-width:330px}.brand-yarn{width:88px!important;height:88px!important;filter:drop-shadow(0 14px 18px rgba(91,32,18,.28));transform:rotate(-8deg)}.site-header.is-scrolled .brand-yarn{width:74px!important;height:74px!important}.site-brand strong{font-size:36px}.site-brand span{font-size:13px;letter-spacing:.01em}

/* Clean poster-like hero */
.hero-section{min-height:900px;padding:180px 6vw 120px;display:grid;place-items:center;text-align:center}.hero-copy{max-width:940px}.hero-copy h1{font-size:clamp(74px,8vw,136px);letter-spacing:-.055em}.hero-copy>p:not(.hero-kicker):not(.hero-note){max-width:760px}.hero-note{margin-top:34px}.hero-yarn-anchor,.hero-yarn-ball{display:none!important}
.hero-section::before{content:"";position:absolute;inset:120px 10vw 90px;border-radius:50%;z-index:0;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.48),transparent 64%);filter:blur(10px)}.hero-copy{position:relative;z-index:4}

/* Typography contrast by depth */
.team-section,.site-footer{color:#fff4ea}.team-section h2,.team-section .eyebrow,.team-heading p{color:#fff4ea!important;text-shadow:0 14px 38px rgba(31,5,3,.22)}.team-heading p{opacity:.92}.team-section .eyebrow{opacity:.88}.site-footer a{color:#fff}

/* Better section rhythm */
.section{padding:104px 0}.about-section{padding-top:96px}.stats-section{padding-top:100px}.trust-section{padding-top:96px}.product-section{padding-top:112px}.team-section{padding-top:118px}
.metric-grid article,.flow-grid article,.cards-grid>article,.empty-card,.concept-card,.family-card,.form-card,.research-insights article,.tree-person,.album-card,.method-card,.trust-grid article,.account-card,.album-help,.tree-help,.concept-main-card,.concept-route div,.concept-split article,.about-points article,.concept-detail-card,.concept-route-card{background:rgba(255,248,241,.88);border:1px solid rgba(121,37,31,.09);box-shadow:0 20px 56px rgba(83,31,20,.12);backdrop-filter:blur(10px)}

/* Practices: less wall, clearer action */
.practices-layout{display:grid;gap:20px}.practices-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.practices-compact{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:10px}.practice-card{background:rgba(255,248,241,.88);border:1px solid rgba(121,37,31,.09);box-shadow:0 18px 46px rgba(83,31,20,.11);border-radius:26px}.practice-card.featured{padding:28px;display:flex;flex-direction:column;gap:18px;min-height:260px}.practice-card.compact{padding:20px 22px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;min-height:0}.practice-card h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:clamp(25px,2vw,33px);line-height:1.1;margin:0 0 10px}.practice-card.compact h3{font-size:24px}.practice-card p{margin:0;color:var(--text);line-height:1.6}.practice-card.compact p{font-size:15px}.practice-card .card-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.practice-card .card-meta span{font-size:12px;font-weight:900;color:var(--wine);background:rgba(121,37,31,.07);border-radius:999px;padding:7px 9px}.practice-action{width:100%;min-height:48px;border-radius:16px}.practice-card.compact .practice-action{width:auto;min-width:138px}.practice-action.done{background:rgba(121,37,31,.10)!important;color:var(--wine)!important;border:1px solid rgba(121,37,31,.12);box-shadow:none}

/* Team: compact editorial cards */
.team-heading{display:grid;grid-template-columns:.46fr 1fr;gap:30px;align-items:end;margin-bottom:30px}.team-heading h2{font-size:clamp(48px,5vw,78px);text-align:left;margin:0}.team-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.team-list article{padding:16px;border-radius:26px;background:rgba(255,248,241,.92);border:1px solid rgba(255,255,255,.35);box-shadow:0 26px 70px rgba(38,7,4,.20)}.team-list img{aspect-ratio:1/1.05;border-radius:20px;filter:grayscale(1) contrast(1.07) brightness(.96);box-shadow:0 16px 34px rgba(83,31,20,.14)}.team-list h3{font-size:22px;line-height:1.12;margin:0 0 8px}.team-list article p{font-size:14px;color:#8b594c;font-weight:900}.team-list blockquote{font-size:17px;line-height:1.35;margin:13px 0 10px}.team-list a{font-size:13px;margin-top:6px}

/* Concept v7: meanings of details */
.concept-hero p{max-width:760px}.concept-v7{gap:26px}.concept-symbol-card{grid-template-columns:220px 1fr;padding:34px}.concept-symbol-card img{width:210px}.concept-details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.concept-detail-card{padding:26px;border-radius:28px}.concept-detail-card b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--red));color:#fff;margin-bottom:18px}.concept-detail-card h3{font-family:"Playfair Display",serif;color:var(--wine);font-size:31px;margin:0 0 12px}.concept-detail-card p{margin:0;line-height:1.68}.concept-route-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:center;padding:34px;border-radius:32px}.concept-route-card span{display:inline-block;text-transform:uppercase;letter-spacing:.17em;color:#b86245;font-size:12px;font-weight:900;margin-bottom:12px}.concept-route-card h2{text-align:left;font-size:clamp(34px,3.4vw,58px);margin:0}.concept-route-line{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.concept-route-line div{position:relative;padding:18px;border-radius:22px;background:rgba(255,255,255,.62);border:1px solid rgba(121,37,31,.08)}.concept-route-line b{display:block;color:var(--wine);font-size:18px;margin-bottom:7px}.concept-route-line p{margin:0;color:var(--muted);line-height:1.45;font-size:14px}

/* Account/form polish */
#familyEditForm{display:grid;gap:14px}#familyEditForm .primary-btn{width:100%;min-height:54px;white-space:normal}.account-row strong,.member-row strong,.member-row span{overflow-wrap:anywhere;word-break:break-word}.account-card .hint{margin-bottom:4px}

/* Lower text contrast for dark zones */
.site-footer .primary-btn{background:linear-gradient(135deg,#f2b16e,#e1614f)}

@media(max-width:1340px){.brand-yarn{width:78px!important;height:78px!important}.site-header.is-scrolled .brand-yarn{width:66px!important;height:66px!important}.team-list{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1240px){.site-brand{min-width:auto}.hero-section{min-height:820px}.concept-details-grid,.concept-route-card{grid-template-columns:1fr}.concept-route-line{grid-template-columns:repeat(3,1fr)}.practices-featured,.practices-compact{grid-template-columns:1fr 1fr}.team-heading{grid-template-columns:1fr;text-align:center}.team-heading h2{text-align:center}.team-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.site-header{min-height:70px}.brand-yarn{width:56px!important;height:56px!important}.site-header.is-scrolled .brand-yarn{width:50px!important;height:50px!important}.hero-section{min-height:760px;padding-top:132px}.hero-copy h1{font-size:56px}.hero-note{font-size:26px}.concept-details-grid,.concept-route-line,.practices-featured,.practices-compact,.team-list{grid-template-columns:1fr}.practice-card.compact{grid-template-columns:1fr}.practice-card.compact .practice-action{width:100%}.concept-symbol-card{grid-template-columns:1fr;text-align:center}.concept-symbol-card img{margin:0 auto}.concept-main-card h2,.concept-route-card h2{text-align:center}.team-heading h2{font-size:46px}}

/* =========================
   v8 visual stabilization: smoother thread, richer texture, calmer palette
   ========================= */
:root{
  --accent:#968F6A;
  --accent-dark:#746C4A;
  --accent-light:#C8BB8D;
  --cream-text:#fff4e8;
  --warm-ink:#6b2a24;
  --grain-opacity:.285;
}
html,body{background:#5f1714!important;}
body::before{
  background:
    radial-gradient(circle at 16% 7%, rgba(255,255,255,.94) 0 10%, transparent 30%),
    radial-gradient(circle at 78% 21%, rgba(255,232,214,.66) 0 14%, transparent 39%),
    radial-gradient(circle at 18% 46%, rgba(246,190,163,.38) 0 13%, transparent 38%),
    radial-gradient(circle at 75% 68%, rgba(121,37,31,.28) 0 20%, transparent 48%),
    linear-gradient(180deg,
      #fffdf8 0%,
      #fff8ef 15%,
      #f5d5c6 34%,
      #df927e 54%,
      #b64b41 74%,
      #80241f 90%,
      #5b1512 100%)!important;
}
body::after{
  opacity:var(--grain-opacity)!important;
  mix-blend-mode:multiply!important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23noise)' opacity='.52'/%3E%3C/svg%3E"),
    radial-gradient(circle at calc(20% + var(--scroll-progress) * 10%) calc(18% + var(--scroll-progress) * 26%), rgba(255,255,255,.46), transparent 34%),
    radial-gradient(circle at calc(82% - var(--scroll-progress) * 20%) calc(70% - var(--scroll-progress) * 6%), rgba(255,221,196,.18), transparent 36%)!important;
}
body:not(.home-page)::before{min-height:100vh;height:max(var(--doc-height,100vh),100vh)}
main{background:transparent!important;}
main::after{content:"";display:block;height:1px;background:transparent;}

/* calmer premium buttons: olive-brass accent inside the approved warm palette */
.primary-btn,
.auth-tabs .active,
.auth-card form button{
  background:linear-gradient(135deg,#a59b70 0%,#8f855d 48%,#746c4a 100%)!important;
  color:#fffaf0!important;
  box-shadow:0 16px 34px rgba(88,76,46,.22)!important;
}
.primary-btn:hover,
.auth-card form button:hover{
  box-shadow:0 18px 42px rgba(88,76,46,.28)!important;
}
.flow-grid b,.concept-detail-card b{
  background:linear-gradient(135deg,#b5a879,#827850)!important;
}
.practice-action.done{
  background:rgba(150,143,106,.18)!important;
  color:#5f5838!important;
  border-color:rgba(116,108,74,.18)!important;
}
.secondary-btn{background:rgba(255,250,246,.90);border-color:rgba(116,108,74,.18)}

/* dark-zone readability: the text lightens as the background deepens */
.memory-section h2,
.practices-section h2,
.team-section h2,
.memory-section .eyebrow,
.practices-section .eyebrow,
.team-section .eyebrow{
  color:var(--cream-text)!important;
  text-shadow:0 16px 46px rgba(41,8,5,.34)!important;
}
.memory-section .section-lead,
.practices-section .section-lead,
.team-heading p{
  color:rgba(255,244,232,.88)!important;
  text-shadow:0 10px 32px rgba(41,8,5,.18);
}
.memory-progress p{
  background:rgba(255,246,236,.88)!important;
  color:var(--wine)!important;
}
.practice-card,
.team-list article,
.cards-grid>article,
.empty-card{
  background:rgba(255,247,239,.92)!important;
}
.practices-section .section-heading{margin-bottom:42px;}
.practice-card h3{color:var(--wine)!important;text-shadow:none!important;}
.practice-card p{color:var(--text)!important;}
.practice-card .primary-btn{background:linear-gradient(135deg,#a59b70,#746c4a)!important;}

/* the thread layer should never create white seams or abrupt overlays */
#threadCanvas{opacity:.96!important;will-change:contents;}

/* smoother visual rhythm for heavy dark blocks */
.memory-section,.practices-section,.team-section{position:relative;}
.memory-section::before,.practices-section::before,.team-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:radial-gradient(circle at 50% 8%,rgba(255,244,232,.15),transparent 36%);
}
.memory-section>.container,.practices-section>.container,.team-section>.container{position:relative;z-index:3;}

/* concept lower edge no white stripe */
.page-section:last-child{padding-bottom:150px;}
body:not(.home-page) .page-section:last-child::after{content:"";position:fixed;left:0;right:0;bottom:0;height:2px;background:#5b1512;pointer-events:none;z-index:0;}

@media(max-width:760px){
  .primary-btn,.secondary-btn,.danger-btn{min-height:48px;}
  body::after{opacity:.22!important;}
}


/* =========================
   v8.1 responsive hotfix: mobile/tablet usability first
   ========================= */
html, body { max-width: 100%; }
body { width: 100%; }
img, video, canvas, iframe { max-width: 100%; }
.site-header { max-width: calc(100vw - 32px); }
.mobile-menu-toggle { display:none; }
.site-nav a, .header-auth a, .header-auth button { white-space: nowrap; }

/* The decorative thread is intentionally disabled on compact screens: auth and reading must stay usable. */
@media (max-width: 1024px), (pointer: coarse) {
  #threadCanvas { display:none!important; }
}

@media (max-width: 1180px) {
  :root { --container: min(1120px, 92vw); }
  .site-header { width: min(1120px, 94vw); }
  .site-brand { min-width: 0; }
  .site-nav { gap: 12px; font-size: 13px; }
  .header-auth { min-width: auto; }
  .brand-yarn { width: 72px!important; height: 72px!important; }
  .site-header.is-scrolled .brand-yarn { width: 62px!important; height: 62px!important; }
}

@media (max-width: 980px) {
  :root { --container: 92vw; --radius: 24px; }
  section, footer { scroll-margin-top: 104px; }
  body { overflow-x: hidden; }

  .site-header {
    top: 12px;
    width: min(720px, 94vw);
    min-height: 72px;
    padding: 10px 14px;
    border-radius: 24px;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
  }
  .site-brand { gap: 12px; flex: 1 1 auto; min-width: 0; }
  .brand-yarn { width: 60px!important; height: 60px!important; }
  .site-header.is-scrolled .brand-yarn { width: 54px!important; height: 54px!important; }
  .site-brand strong { font-size: 28px; }
  .site-brand span { display:block; font-size: 11px; max-width: 180px; white-space: nowrap; overflow:hidden; text-overflow:ellipsis; }

  .mobile-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border: 1px solid rgba(121,37,31,.12);
    border-radius: 16px;
    background: rgba(255,250,246,.95);
    color: var(--wine);
    font-size: 24px;
    font-weight: 900;
    line-height: 1;
    box-shadow: 0 10px 26px rgba(83,31,20,.08);
  }
  .site-nav,
  .header-auth {
    display: none;
    flex: 1 0 100%;
    width: 100%;
  }
  .site-header.menu-open .site-nav,
  .site-header.menu-open .header-auth {
    display: grid;
  }
  .site-header.menu-open .site-nav {
    grid-template-columns: 1fr;
    gap: 6px;
    padding-top: 10px;
    border-top: 1px solid rgba(121,37,31,.08);
  }
  .site-header.menu-open .site-nav a {
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(121,37,31,.045);
  }
  .site-header.menu-open .header-auth {
    grid-template-columns: 1fr;
    gap: 8px;
    padding-bottom: 4px;
  }
  .site-header.menu-open .header-auth .compact-btn,
  .site-header.menu-open .header-auth button {
    width: 100%;
    justify-content: center;
  }

  .hero-section { min-height: 760px; padding: 136px 6vw 90px; }
  .hero-copy h1 { font-size: clamp(54px, 13vw, 86px); line-height: .96; }
  .hero-copy > p:not(.hero-kicker):not(.hero-note) { font-size: 18px; line-height: 1.58; }
  .hero-actions { max-width: 520px; margin-inline: auto; }
  .hero-actions a { flex: 1 1 220px; }

  .section { padding: 72px 0; }
  h2 { font-size: clamp(38px, 9vw, 58px); }
  .section-heading { margin-bottom: 34px; }
  .section-lead, .about-copy>p, .page-hero p { font-size: 17px; line-height: 1.65; }

  .about-grid,
  .product-grid,
  .map-layout,
  .album-layout,
  .tree-layout,
  .account-grid,
  .trust-panel,
  .footer-grid,
  .concept-route-card,
  .concept-symbol-card {
    grid-template-columns: 1fr!important;
    gap: 22px;
  }
  .metric-grid,
  .flow-grid,
  .research-insights,
  .trust-grid,
  .cards-grid,
  .album-grid,
  .tree-generation-grid,
  .concept-details-grid,
  .concept-route-line,
  .team-list,
  .practices-featured,
  .practices-compact {
    grid-template-columns: 1fr 1fr!important;
    gap: 16px;
  }
  .form-row { grid-template-columns: 1fr!important; }
  .map-box { height: 430px; }
  .page-hero { padding: 130px 0 44px; }
  .page-section { padding: 42px 0 90px; }
  .page-hero h1 { font-size: clamp(44px, 11vw, 68px); }

  .family-card { max-width: none; }
  .question-result p { font-size: 26px; }
  .product-grid .form-card, .product-grid .family-card { width: 100%; }
  .form-card, .family-card, .account-card, .album-help, .tree-help { padding: 24px; }

  .auth-page {
    display: grid!important;
    grid-template-columns: 1fr!important;
    min-height: 100vh;
    padding: 24px 0 44px;
    overflow-x: hidden;
  }
  .auth-hero {
    padding: 32px 6vw 12px!important;
    align-items: center;
    text-align: center;
  }
  .auth-brand { justify-content: center; margin-bottom: 10px!important; }
  .auth-hero h1 { font-size: clamp(42px, 10vw, 62px)!important; margin: 18px 0!important; }
  .auth-hero p { max-width: 680px; font-size: 17px!important; line-height: 1.65!important; }
  .auth-card {
    width: min(620px, 92vw);
    margin: 18px auto 0!important;
    padding: 26px!important;
    align-self: start!important;
  }
  .auth-tabs { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  :root { --container: 91vw; }
  .site-header { width: 94vw; top: 8px; border-radius: 20px; }
  .brand-yarn { width: 54px!important; height: 54px!important; }
  .site-brand strong { font-size: 25px; }
  .site-brand span { display:none; }
  .mobile-menu-toggle { width: 44px; height: 44px; font-size: 22px; }

  .hero-section { min-height: 700px; padding-top: 112px; }
  .hero-copy h1 { font-size: clamp(48px, 15vw, 64px); }
  .hero-kicker { letter-spacing: .13em; }
  .hero-actions { display:grid; grid-template-columns: 1fr; width:100%; }
  .hero-actions a { width:100%; }
  .hero-note { font-size: 25px; }

  .metric-grid,
  .flow-grid,
  .research-insights,
  .trust-grid,
  .cards-grid,
  .album-grid,
  .tree-generation-grid,
  .concept-details-grid,
  .concept-route-line,
  .team-list,
  .practices-featured,
  .practices-compact {
    grid-template-columns: 1fr!important;
  }
  .metric-grid span { font-size: 44px; }
  .flow-grid h3, .cards-grid h3, .album-card h3, .tree-person h4 { font-size: 26px; }
  .practice-card.compact { grid-template-columns: 1fr!important; }
  .practice-card.compact .practice-action { width:100%; }
  .card-photo { height: 190px; object-fit: cover; }

  .auth-page { padding: 12px 0 34px; }
  .auth-hero { padding: 22px 5vw 8px!important; }
  .auth-hero h1 { font-size: 40px!important; }
  .auth-hero p { font-size: 15.5px!important; }
  .auth-card { width: 92vw; padding: 20px!important; border-radius: 24px; }
  .auth-tabs { grid-template-columns: 1fr; }
  input, select, textarea { font-size: 16px; padding: 14px; }
  .primary-btn, .secondary-btn, .danger-btn, .auth-card form button { width:100%; min-height: 48px; }
  .account-row, .member-row { display:grid; grid-template-columns:1fr; gap:6px; }
  .account-row strong, .member-row strong { text-align:left; }
  .card-actions, .admin-actions, .account-actions, .family-actions, .rating-buttons { display:grid; grid-template-columns:1fr; gap:10px; }
  .family-actions .secondary-btn, .family-actions button { width:100%; }
  .map-box { height: 360px; border-radius: 22px; }
  .page-hero { padding-top: 106px; }
  .page-section { padding-bottom: 74px; }
  .album-meta, .card-meta { gap: 7px; }
  .tree-person, .album-card { overflow: visible; }
}

@media (max-width: 390px) {
  .site-brand strong { font-size: 22px; }
  .brand-yarn { width: 48px!important; height: 48px!important; }
  .hero-copy h1 { font-size: 43px; }
  .auth-hero h1 { font-size: 35px!important; }
}

/* =========================
   v8.1.1 mobile scroll stability + lightweight mobile thread
   ========================= */
.mobile-thread{display:none;}

@media (max-width:1024px), (pointer:coarse){
  html{scroll-behavior:auto!important;}
  body{
    touch-action:pan-y;
    overscroll-behavior-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  /* Fixed blend layers + scroll-driven CSS variables caused mobile jank. Keep texture static. */
  body::before{display:none!important;}
  body::after{
    position:absolute!important;
    inset:0!important;
    min-height:var(--doc-height,100vh);
    opacity:.18!important;
    mix-blend-mode:multiply!important;
    transform:none!important;
  }
  #threadCanvas{display:none!important;}
  .reveal-block,.reveal-item{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
  .home-page .mobile-thread{
    display:block;
    position:absolute;
    left:6px;
    top:0;
    width:86px;
    min-height:var(--doc-height,100vh);
    z-index:1;
    pointer-events:none;
    opacity:.82;
  }
  .home-page .mobile-thread svg{
    display:block;
    width:86px;
    height:var(--doc-height,100vh);
    overflow:visible;
  }
  .mobile-thread-shadow,
  .mobile-thread-line{
    fill:none;
    stroke-linecap:round;
    stroke-linejoin:round;
    vector-effect:non-scaling-stroke;
  }
  .mobile-thread-shadow{
    stroke:rgba(63,18,13,.22);
    stroke-width:8;
    filter:blur(5px);
  }
  .mobile-thread-line{
    stroke:url(#mobileThreadGradient);
    stroke-width:4.2;
  }
  .home-page main>section,
  .home-page main>footer{z-index:3;}
}

@media (max-width:620px){
  .home-page .mobile-thread{left:-10px;width:74px;opacity:.72;}
  .home-page .mobile-thread svg{width:74px;}
  .mobile-thread-line{stroke-width:3.4;}
  .mobile-thread-shadow{stroke-width:6.4;filter:blur(4px);}
}

@media (max-width:420px){
  .home-page .mobile-thread{left:-18px;opacity:.62;}
}


/* =========================
   v8.2 product polish + mobile visual correction
   ========================= */
:root{--brass:#968F6A;--brass-dark:#746C4A;--brass-soft:#d9cfaa;}
.brand-yarn{width:84px!important;height:84px!important;}
.site-header.is-scrolled .brand-yarn{width:70px!important;height:70px!important;}

/* make forms and rich cards feel like product sections, not raw upload widgets */
.enhanced-form .hint{margin:-4px 0 4px;}
.image-preview{display:grid;gap:10px;padding:14px;border-radius:20px;background:rgba(255,255,255,.62);border:1px dashed rgba(121,37,31,.18);}
.image-preview img{width:100%;height:220px;border-radius:16px;object-fit:cover;background:#fff7ef;}
.image-preview img.fit-contain,.image-preview img.fit-contain.fit-cover{object-fit:contain;}
.image-preview span{font-size:13px;color:var(--muted);font-weight:700;}
.photo-open{display:block;width:100%;border:0;background:transparent;padding:0;cursor:pointer;border-radius:22px;overflow:hidden;}
.photo-open:focus-visible{outline:3px solid rgba(150,143,106,.45);outline-offset:3px;}
.card-photo.fit-contain{object-fit:contain;background:#fff8f1;}
.photo-placeholder{display:grid;place-items:center;color:var(--muted);font-weight:800;background:rgba(121,37,31,.05);}
.album-card,.tree-person{display:flex;flex-direction:column;gap:12px;}
.album-card .card-actions,.tree-person .card-actions{margin-top:auto;display:flex;gap:10px;flex-wrap:wrap;}
.album-card .danger-btn,.tree-person .danger-btn{width:auto;min-width:130px;}
.concept-help-card{gap:16px;justify-content:flex-start;line-height:1.7;}
.concept-help-card p{margin:0;}.concept-help-card strong{color:var(--wine)}
.tree-meaning-strip{margin:0 0 24px;padding:18px 22px;border-radius:24px;background:rgba(255,248,241,.84);border:1px solid rgba(121,37,31,.08);box-shadow:var(--soft-shadow);display:grid;gap:6px;}
.tree-meaning-strip strong{color:var(--wine);font-size:18px}.tree-meaning-strip span{color:var(--text);line-height:1.55}
.photo-modal{position:fixed;inset:0;background:rgba(35,7,5,.74);z-index:900;display:grid;place-items:center;padding:28px;}
.photo-modal img{max-width:min(1100px,94vw);max-height:86vh;border-radius:24px;box-shadow:0 34px 90px rgba(0,0,0,.32);background:#fff;}
.photo-modal button{position:absolute;right:24px;top:24px;width:52px;height:52px;border-radius:50%;border:0;background:#fff8f1;color:var(--wine);font-size:32px;line-height:1;}
.admin-subtitle{font-size:clamp(32px,3vw,48px);text-align:left;margin:34px 0 0;}
.feedback-card.status-new{border-color:rgba(150,143,106,.45)!important}.feedback-card .admin-actions{margin-top:16px;}
.letter-section .form-card form,.compact-feedback-form{display:grid;gap:14px}.letter-card{display:grid;gap:22px}.letter-card textarea,.compact-feedback-form textarea{min-height:150px}.mini-list{display:grid;gap:12px}.mini-list h3{margin:0;color:var(--wine);font-size:20px}.mini-letter{padding:16px;border-radius:18px;background:rgba(121,37,31,.05);border:1px solid rgba(121,37,31,.08);display:grid;gap:8px}.mini-letter strong{color:var(--wine);font-size:17px}.mini-letter span{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:900}.mini-letter p{margin:0;line-height:1.55}.mini-letter .danger-btn{width:max-content;min-width:120px}.feedback-panel .form-card{box-shadow:none;background:rgba(255,248,241,.9)}

/* mobile: fix v8.1.1 dark blanket while keeping scroll smooth */
@media (max-width:1024px), (pointer:coarse){
  html{background:#fff8f1!important;}
  body{
    color:#59362f!important;
    background:
      radial-gradient(circle at 50% 10%, rgba(255,255,255,.92) 0 16%, transparent 42%),
      radial-gradient(circle at 24% 28%, rgba(255,239,224,.78) 0 20%, transparent 48%),
      linear-gradient(180deg,
        #fffdf8 0%,
        #fff8ef 14%,
        #f4d0bf 36%,
        #d77768 62%,
        #9a332d 82%,
        #671916 100%)!important;
    background-attachment:scroll!important;
  }
  body::before{display:none!important;}
  body::after{
    display:block!important;
    position:absolute!important;
    inset:0!important;
    min-height:var(--doc-height,100vh)!important;
    opacity:.12!important;
    mix-blend-mode:multiply!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='96' height='96' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E")!important;
  }
  .hero-section,.page-hero{color:var(--text);}
  .hero-copy h1,.hero-note,.page-hero h1,h2{color:var(--wine)!important;text-shadow:0 0 30px rgba(255,248,241,.70)!important;}
  .hero-copy>p:not(.hero-kicker):not(.hero-note),.page-hero p,.section-lead,.about-copy>p{color:#5b3c34!important;text-shadow:none!important;}
  .hero-section{background:linear-gradient(180deg,rgba(255,253,248,.74),rgba(255,247,239,.24) 70%,transparent)!important;}
  .memory-section h2,.practices-section h2,.team-section h2,.memory-section .eyebrow,.practices-section .eyebrow,.team-section .eyebrow{color:#fff4e8!important;text-shadow:0 12px 32px rgba(35,7,5,.32)!important;}
  .memory-section .section-lead,.practices-section .section-lead,.team-heading p{color:rgba(255,244,232,.92)!important;}
  .site-header{background:rgba(255,250,246,.96)!important;}
  .brand-yarn{width:68px!important;height:68px!important;}
  .site-header.is-scrolled .brand-yarn{width:60px!important;height:60px!important;}
  .home-page .mobile-thread{opacity:.78;--mobile-thread-progress:8%;}
  .mobile-thread-base{fill:none;stroke:rgba(121,37,31,.18);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
  .mobile-thread-active{clip-path:inset(0 0 calc(100% - var(--mobile-thread-progress,8%)) 0);transition:clip-path .22s linear;}
  .mobile-thread-line{stroke-width:3.7;}
  .mobile-thread-shadow{opacity:.58;}
  .compact-feedback-form .form-row{grid-template-columns:1fr!important;}
}
@media (max-width:620px){
  .brand-yarn{width:60px!important;height:60px!important;}
  .site-brand strong{font-size:27px!important;}
  .hero-section{min-height:720px;}
  .hero-copy h1{font-size:clamp(48px,14vw,66px)!important;}
  .form-card,.family-card,.account-card,.album-help,.tree-help{padding:22px!important;}
  .album-card .danger-btn,.tree-person .danger-btn,.mini-letter .danger-btn{width:100%;}
  .letter-card textarea,.compact-feedback-form textarea{min-height:130px;}
  .photo-modal{padding:16px}.photo-modal button{right:14px;top:14px;}
}

/* =========================
   v8.3 performance + SVG thread + content logic patch
   ========================= */
#threadCanvas{display:none!important;}
.home-page main{overflow:visible!important;}
body::before{transform:none!important;}
body::after{
  position:absolute!important;
  inset:0 0 auto 0!important;
  min-height:var(--doc-height,100vh)!important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23noise)' opacity='.44'/%3E%3C/svg%3E"),
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.36), transparent 34%),
    radial-gradient(circle at 78% 70%, rgba(255,221,196,.16), transparent 38%)!important;
}
.desktop-thread{
  display:block;
  position:absolute;
  left:0;
  top:0;
  width:100%;
  min-height:var(--doc-height,100vh);
  z-index:2;
  pointer-events:none;
  opacity:.88;
  contain:layout paint;
}
.desktop-thread svg{display:block;width:100%;height:var(--doc-height,100vh);overflow:visible;}
.desktop-thread-shadow,.desktop-thread-base,.desktop-thread-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;}
.desktop-thread-shadow{stroke:rgba(50,12,8,.18);stroke-width:9;filter:blur(5px);}
.desktop-thread-base{stroke:rgba(121,37,31,.13);stroke-width:3.2;}
.desktop-thread-active{clip-path:inset(0 0 calc(100% - var(--desktop-thread-progress,5%)) 0);transition:clip-path .12s linear;}
.desktop-thread-line{stroke:url(#desktopThreadGradient);stroke-width:4.2;}
.site-header{will-change:auto!important;}
.brand-yarn{width:98px!important;height:98px!important;}
.site-header.is-scrolled .brand-yarn{width:80px!important;height:80px!important;}
.site-brand{min-width:min(380px,33vw);}

.letter-section h2,
.letter-section .eyebrow,
.letter-section .section-lead{
  color:var(--cream-text)!important;
  text-shadow:0 14px 38px rgba(41,8,5,.30)!important;
}
.letter-section .form-card h3,.letter-section .form-card label{color:var(--wine)!important;text-shadow:none!important;}
.feedback-section{padding-top:118px;padding-bottom:96px;}
.feedback-panel{background:rgba(255,248,241,.88)!important;}
.feedback-panel h2,.feedback-panel .eyebrow,.feedback-panel .section-lead{color:var(--wine)!important;text-shadow:none!important;}
.feedback-panel .section-lead{color:var(--text)!important;}

.back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:420;
  width:54px;
  height:54px;
  border-radius:50%;
  border:1px solid rgba(255,248,241,.48);
  background:linear-gradient(135deg,#a59b70,#746c4a);
  color:#fffaf0;
  font-size:28px;
  font-weight:900;
  line-height:1;
  box-shadow:0 18px 42px rgba(38,7,4,.28);
  opacity:0;
  transform:translateY(14px) scale(.94);
  pointer-events:none;
  transition:opacity .22s ease,transform .22s ease,box-shadow .22s ease;
}
.back-to-top.is-visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.back-to-top:hover{box-shadow:0 20px 48px rgba(38,7,4,.34);}

.reveal-block,.reveal-item{will-change:opacity,transform;}
.reveal-block.is-visible,.reveal-item.is-visible{will-change:auto;}
.edit-cancel-btn{width:100%;}
.letter-card label{display:grid;gap:9px;}
.letter-card .hint{background:rgba(121,37,31,.045);border-radius:16px;padding:12px 14px;}
.mini-letter span{line-height:1.45;}
.card-actions .secondary-btn,.card-actions .danger-btn{min-width:130px;}
.photo-modal.hidden{display:none!important;}
.photo-modal{cursor:zoom-out;}
.photo-modal img,.photo-modal button{cursor:auto;}
.tree-meaning-strip{background:rgba(255,248,241,.92)!important;}

@media (max-width:1340px){
  .brand-yarn{width:86px!important;height:86px!important;}
  .site-header.is-scrolled .brand-yarn{width:72px!important;height:72px!important;}
}
@media (max-width:1024px), (pointer:coarse){
  .desktop-thread{display:none!important;}
  .brand-yarn{width:68px!important;height:68px!important;}
  .site-header.is-scrolled .brand-yarn{width:60px!important;height:60px!important;}
  .letter-section h2,.letter-section .eyebrow,.letter-section .section-lead{color:var(--cream-text)!important;}
  .back-to-top{right:14px;bottom:14px;width:48px;height:48px;font-size:25px;}
}
@media (max-width:620px){
  .brand-yarn{width:60px!important;height:60px!important;}
  .site-header.is-scrolled .brand-yarn{width:54px!important;height:54px!important;}
  .card-actions .secondary-btn,.card-actions .danger-btn{width:100%;}
}


/* =========================
   v8.3.1 visual + scroll stability patch
   ========================= */
html{
  overflow-x:clip!important;
  scrollbar-gutter:stable both-edges;
}
body{
  overflow-x:clip!important;
  overscroll-behavior-y:auto;
}
body::before,
body::after,
.desktop-thread,
.mobile-thread{
  pointer-events:none!important;
}
body::after{
  opacity:.17!important;
  mix-blend-mode:multiply!important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.52'/%3E%3C/svg%3E")!important;
  background-size:140px 140px!important;
}
.home-page .site-header{
  width:min(1340px, calc(100% - 32px))!important;
  max-width:1340px!important;
  left:50%!important;
  transform:translate3d(-50%,0,0)!important;
}
.home-page .site-brand{gap:22px!important;min-width:min(420px,34vw)!important;}
.home-page .brand-yarn{
  width:118px!important;
  height:118px!important;
  filter:drop-shadow(0 14px 22px rgba(91,32,18,.24))!important;
}
.home-page .site-header.is-scrolled .brand-yarn{
  width:94px!important;
  height:94px!important;
}
.desktop-thread{
  z-index:1!important;
  opacity:.58!important;
  contain:none!important;
}
.desktop-thread svg,
.mobile-thread svg{
  overflow:visible!important;
}
.desktop-thread-shadow,
.mobile-thread-shadow{
  stroke:rgba(75,24,18,.11)!important;
  stroke-width:6.4!important;
  filter:blur(3px)!important;
}
.desktop-thread-base,
.mobile-thread-base{
  fill:none!important;
  stroke:rgba(121,37,31,.08)!important;
  stroke-width:2.2!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke!important;
}
.desktop-thread-active,
.mobile-thread-active{
  clip-path:none!important;
  transition:none!important;
}
.desktop-thread-line{
  stroke:url(#desktopThreadGradient)!important;
  stroke-width:3.2!important;
  opacity:.86!important;
}
.mobile-thread{
  left:0!important;
  width:72px!important;
  opacity:.44!important;
  z-index:1!important;
}
.mobile-thread-line{
  stroke:url(#mobileThreadGradient)!important;
  stroke-width:3.2!important;
  opacity:.82!important;
}
.home-page main,
.home-page main > section,
.site-footer{
  position:relative;
}
.home-page main > section,
.home-page main > footer,
.site-footer{
  z-index:3!important;
}
.reveal-block,
.reveal-item,
.site-header,
.back-to-top{
  will-change:auto!important;
}
@media (max-width: 1340px){
  .home-page .brand-yarn{width:104px!important;height:104px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:84px!important;height:84px!important;}
}
@media (max-width: 1024px), (pointer:coarse){
  html{scroll-behavior:auto!important;}
  .home-page .site-header{
    width:calc(100% - 16px)!important;
    top:8px!important;
    border-radius:22px!important;
  }
  .home-page .brand-yarn{width:74px!important;height:74px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:64px!important;height:64px!important;}
  .mobile-thread{width:68px!important;left:-6px!important;opacity:.36!important;}
  .mobile-thread-shadow{stroke-width:5.2!important;filter:blur(2.5px)!important;}
  .mobile-thread-line{stroke-width:2.9!important;}
}
@media (max-width: 620px){
  .home-page .brand-yarn{width:64px!important;height:64px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:56px!important;height:56px!important;}
  .mobile-thread{width:60px!important;left:-10px!important;opacity:.3!important;}
}

/* =========================
   v8.3.2 verified yarn + background texture patch
   Focus: larger yarn ball, visible paper grain, no side shift.
   ========================= */
html{
  overflow-x:clip!important;
  scrollbar-gutter:stable!important;
}
body{
  overflow-x:clip!important;
}
body::after{
  content:""!important;
  position:fixed!important;
  inset:0!important;
  min-height:100vh!important;
  z-index:0!important;
  pointer-events:none!important;
  opacity:.28!important;
  mix-blend-mode:multiply!important;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 150 150'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='150' height='150' filter='url(%23grain)' opacity='.58'/%3E%3C/svg%3E"),
    linear-gradient(135deg, rgba(255,255,255,.18) 0 1px, transparent 1px 13px),
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.35), transparent 32%),
    radial-gradient(circle at 82% 72%, rgba(93,27,22,.12), transparent 42%)!important;
  background-size:150px 150px, 13px 13px, 100% 100%, 100% 100%!important;
  background-repeat:repeat, repeat, no-repeat, no-repeat!important;
}
body::before{
  pointer-events:none!important;
}
.home-page main,
.home-page main > section,
.home-page main > footer,
.site-footer{
  position:relative!important;
}
.home-page main > section,
.home-page main > footer,
.site-footer{
  z-index:3!important;
}
.home-page .site-header{
  min-height:104px!important;
  padding:14px 26px!important;
}
.home-page .site-brand{
  gap:24px!important;
  min-width:min(455px,36vw)!important;
}
.home-page .brand-yarn{
  width:132px!important;
  height:132px!important;
  flex:0 0 132px!important;
  object-fit:contain!important;
  transform:rotate(-8deg) translateY(1px)!important;
  filter:drop-shadow(0 16px 24px rgba(91,32,18,.28))!important;
}
.home-page .site-header.is-scrolled{
  min-height:88px!important;
}
.home-page .site-header.is-scrolled .brand-yarn{
  width:104px!important;
  height:104px!important;
  flex-basis:104px!important;
}
.desktop-thread{
  opacity:.48!important;
}
.desktop-thread-line{
  stroke-width:2.8!important;
  opacity:.80!important;
}
.desktop-thread-shadow{
  stroke-width:5.4!important;
  opacity:.56!important;
  filter:blur(2.6px)!important;
}
.desktop-thread-base{
  stroke-width:1.9!important;
  opacity:.68!important;
}
@media (max-width:1340px){
  .home-page .site-header{min-height:96px!important;padding:13px 22px!important;}
  .home-page .site-brand{min-width:min(390px,35vw)!important;gap:20px!important;}
  .home-page .brand-yarn{width:112px!important;height:112px!important;flex-basis:112px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:90px!important;height:90px!important;flex-basis:90px!important;}
}
@media (max-width:1024px), (pointer:coarse){
  html{scrollbar-gutter:auto!important;scroll-behavior:auto!important;}
  body{touch-action:pan-y!important;overscroll-behavior-y:auto!important;-webkit-overflow-scrolling:touch!important;}
  body::after{
    position:fixed!important;
    opacity:.20!important;
    background-size:135px 135px, 14px 14px, 100% 100%, 100% 100%!important;
  }
  .home-page .site-header{
    min-height:76px!important;
    padding:10px 14px!important;
  }
  .home-page .site-brand{gap:12px!important;min-width:0!important;}
  .home-page .brand-yarn{
    width:78px!important;
    height:78px!important;
    flex-basis:78px!important;
  }
  .home-page .site-header.is-scrolled .brand-yarn{
    width:66px!important;
    height:66px!important;
    flex-basis:66px!important;
  }
  .mobile-thread{opacity:.28!important;pointer-events:none!important;}
}
@media (max-width:620px){
  .home-page .brand-yarn{width:68px!important;height:68px!important;flex-basis:68px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:58px!important;height:58px!important;flex-basis:58px!important;}
  body::after{opacity:.18!important;}
}


/* =========================
   v8.3.3 header + safe thread + visible texture patch
   ========================= */
html{
  overflow-x:clip!important;
  scrollbar-gutter:stable both-edges!important;
}
body{
  overflow-x:clip!important;
  background-image:
    url("assets/paper-texture.png"),
    radial-gradient(circle at 18% 9%, rgba(255,255,255,.94) 0 10%, transparent 31%),
    radial-gradient(circle at 82% 23%, rgba(255,231,214,.62) 0 14%, transparent 38%),
    radial-gradient(circle at 18% 46%, rgba(246,190,163,.36) 0 13%, transparent 39%),
    radial-gradient(circle at 76% 70%, rgba(121,37,31,.28) 0 20%, transparent 48%),
    linear-gradient(180deg,
      #fffdf8 0%,
      #fff8ef 15%,
      #f5d5c6 34%,
      #df927e 54%,
      #b64b41 74%,
      #80241f 90%,
      #5b1512 100%)!important;
  background-size:320px 320px, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%!important;
  background-repeat:repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat!important;
  background-attachment:scroll!important;
}
body::before{
  display:none!important;
}
body::after{
  content:""!important;
  display:block!important;
  position:fixed!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  opacity:.22!important;
  mix-blend-mode:multiply!important;
  background-image:
    linear-gradient(135deg, rgba(255,255,255,.18) 0 1px, transparent 1px 18px),
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.18), transparent 34%),
    radial-gradient(circle at 80% 72%, rgba(78,21,17,.12), transparent 38%)!important;
  background-size:18px 18px, 100% 100%, 100% 100%!important;
}
.home-page main,
.home-page main > section,
.home-page main > footer,
.site-footer{
  position:relative!important;
}
.home-page main > section,
.home-page main > footer,
.site-footer{
  z-index:3!important;
}
.home-page .site-header{
  display:grid!important;
  grid-template-columns:minmax(310px, auto) minmax(0, 1fr) auto!important;
  align-items:center!important;
  justify-content:normal!important;
  width:min(1480px, calc(100% - 40px))!important;
  max-width:1480px!important;
  min-height:104px!important;
  gap:18px!important;
  padding:14px 24px!important;
  left:50%!important;
  transform:translate3d(-50%,0,0)!important;
  overflow:visible!important;
}
.home-page .site-brand{
  min-width:0!important;
  gap:22px!important;
}
.home-page .brand-yarn{
  width:132px!important;
  height:132px!important;
  flex:0 0 132px!important;
}
.home-page .site-brand strong{
  font-size:34px!important;
  white-space:nowrap!important;
}
.home-page .site-nav{
  min-width:0!important;
  display:flex!important;
  justify-content:center!important;
  gap:clamp(8px, .78vw, 16px)!important;
  font-size:13px!important;
  line-height:1!important;
  overflow:hidden!important;
}
.home-page .site-nav a{
  white-space:nowrap!important;
}
.home-page .header-auth{
  min-width:0!important;
  display:flex!important;
  flex-wrap:nowrap!important;
  justify-content:flex-end!important;
  gap:10px!important;
}
.home-page .header-auth .compact-btn,
.home-page .header-auth a,
.home-page .header-auth button{
  white-space:nowrap!important;
  padding-inline:17px!important;
}
.home-page .site-header.is-scrolled{
  min-height:88px!important;
}
.home-page .site-header.is-scrolled .brand-yarn{
  width:104px!important;
  height:104px!important;
  flex-basis:104px!important;
}
.desktop-thread{
  display:block!important;
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  min-height:var(--doc-height,100vh)!important;
  z-index:1!important;
  pointer-events:none!important;
  opacity:.66!important;
  contain:none!important;
}
.desktop-thread svg{display:block!important;width:100%!important;height:var(--doc-height,100vh)!important;overflow:visible!important;}
.desktop-thread-shadow,
.desktop-thread-base,
.desktop-thread-line{
  fill:none!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  vector-effect:non-scaling-stroke!important;
}
.desktop-thread-shadow{
  stroke:rgba(63,18,13,.11)!important;
  stroke-width:6!important;
  filter:blur(2.6px)!important;
}
.desktop-thread-base{
  stroke:rgba(121,37,31,.075)!important;
  stroke-width:2.0!important;
}
.desktop-thread-line{
  stroke:url(#desktopThreadGradient)!important;
  stroke-width:2.8!important;
  opacity:.86!important;
}
.desktop-thread-active{clip-path:none!important;transition:none!important;}
.mobile-thread{pointer-events:none!important;opacity:.26!important;}
.back-to-top{z-index:430!important;}
@media (max-width:1380px){
  .home-page .site-header{
    grid-template-columns:minmax(270px, auto) minmax(0, 1fr) auto!important;
    width:min(1320px, calc(100% - 28px))!important;
    gap:12px!important;
  }
  .home-page .site-brand{gap:16px!important;}
  .home-page .brand-yarn{width:112px!important;height:112px!important;flex-basis:112px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:90px!important;height:90px!important;flex-basis:90px!important;}
  .home-page .site-brand strong{font-size:30px!important;}
  .home-page .site-nav{font-size:12.5px!important;gap:9px!important;}
  .home-page .header-auth .compact-btn,
  .home-page .header-auth a,
  .home-page .header-auth button{padding-inline:14px!important;}
}
@media (max-width:1180px){
  .home-page .site-header{
    display:flex!important;
    flex-wrap:wrap!important;
    width:calc(100% - 24px)!important;
    min-height:80px!important;
    padding:10px 14px!important;
    border-radius:24px!important;
  }
  .home-page .site-brand{flex:1 1 auto!important;}
  .home-page .brand-yarn{width:78px!important;height:78px!important;flex-basis:78px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:66px!important;height:66px!important;flex-basis:66px!important;}
  .mobile-menu-toggle{display:inline-flex!important;}
  .home-page .site-nav,
  .home-page .header-auth{display:none!important;flex:1 0 100%!important;width:100%!important;}
  .home-page .site-header.menu-open .site-nav,
  .home-page .site-header.menu-open .header-auth{display:grid!important;}
  .home-page .site-header.menu-open .site-nav{grid-template-columns:1fr!important;gap:6px!important;padding-top:10px!important;border-top:1px solid rgba(121,37,31,.08)!important;overflow:visible!important;}
  .home-page .site-header.menu-open .site-nav a{padding:12px 14px!important;border-radius:14px!important;background:rgba(121,37,31,.045)!important;}
  .home-page .site-header.menu-open .header-auth{grid-template-columns:1fr!important;gap:8px!important;padding-bottom:4px!important;}
  .home-page .site-header.menu-open .header-auth .compact-btn,
  .home-page .site-header.menu-open .header-auth button{width:100%!important;justify-content:center!important;}
  .desktop-thread{display:none!important;}
}
@media (max-width:620px){
  body::after{opacity:.16!important;}
  .home-page .brand-yarn{width:66px!important;height:66px!important;flex-basis:66px!important;}
  .home-page .site-header.is-scrolled .brand-yarn{width:56px!important;height:56px!important;flex-basis:56px!important;}
}
