/* Privacy policy: Gwen's atelier. Original art only; loops use transform/opacity and pause off screen. */
.privacy-page{background:#0b0d2c;min-height:100vh}
.privacy-page .wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.privacy-defs{position:absolute;width:0;height:0}

/* ---------- Page backdrop: Gwen's threads and sewing marks ---------- */
.gwen-backdrop{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(1100px 700px at 88% -6%,rgba(122,92,255,.26),transparent 60%),radial-gradient(900px 600px at -10% 30%,rgba(93,220,255,.14),transparent 62%),radial-gradient(900px 700px at 60% 110%,rgba(155,107,255,.18),transparent 60%),linear-gradient(180deg,#0c1135 0%,#0a0b28 45%,#130b31 100%)}
.gwen-backdrop::before{content:"";position:absolute;inset:0;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cg fill='none' stroke-linecap='round'%3E%3Cpath d='M24 30l10 10M34 30L24 40' stroke='%238fe6ff' stroke-opacity='.22' stroke-width='1.6'/%3E%3Ccircle cx='160' cy='60' r='7' stroke='%23b9a6ff' stroke-opacity='.22' stroke-width='1.4'/%3E%3Cpath d='M157 57l6 6M163 57l-6 6' stroke='%23b9a6ff' stroke-opacity='.2' stroke-width='1'/%3E%3Cpath d='M70 160l46 -22' stroke='%23cfe9ff' stroke-opacity='.16' stroke-width='1.2'/%3E%3Ccircle cx='68' cy='161' r='3.2' fill='%238fe6ff' fill-opacity='.22'/%3E%3Cpath d='M180 170l8 8M188 170l-8 8' stroke='%238fe6ff' stroke-opacity='.16' stroke-width='1.4'/%3E%3C/g%3E%3C/svg%3E")}
.gwen-threads{position:absolute;inset:0;width:100%;height:100%}
.gwen-threads path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.gwen-threads .t-base{stroke:url(#policySilk);stroke-width:1.6;opacity:.22}
.gwen-threads .t-dash{stroke:rgba(190,215,255,.25);stroke-width:1;stroke-dasharray:3 9}
.gwen-threads .t-run{stroke:#bff3ff;stroke-width:2.4;stroke-dasharray:4 96;stroke-dashoffset:100;opacity:.9;animation:threadRun 9s linear infinite}
.gwen-threads .t-run.glow{stroke:#5ddcff;stroke-width:8;opacity:.22}
.gwen-threads .t-run.r2{animation-duration:13s;animation-delay:-5s;stroke:#d9c9ff}
.gwen-threads .t-run.r2.glow{stroke:#9b6bff}
@keyframes threadRun{to{stroke-dashoffset:0}}

/* Header */
.contact-nav{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:96px;border-bottom:1px dashed rgba(146,162,220,.24)}
.contact-brand{width:96px;display:block}
.contact-nav nav{display:flex;gap:24px;align-items:center;font-size:12px;font-weight:600}
.contact-nav a{text-decoration:none;color:#c2cff0}
.contact-nav a:hover,.contact-nav a:focus-visible{color:#79e4ff}

/* Language blocks */
html[lang=ar] .policy[data-policy=en],html:not([lang=ar]) .policy[data-policy=ar]{display:none}
.policy-main{padding:34px 0 10px}

/* ---------- Hero: portal → snip → pulled back → thread re-sewn (9s loop) ---------- */
.policy-hero{position:relative;overflow:hidden;border-radius:22px;border:1px solid rgba(143,230,255,.26);min-height:380px;padding:48px 44px 48px;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;box-shadow:0 30px 80px -40px rgba(93,220,255,.4),inset 0 0 0 1px rgba(255,255,255,.03);
 background:radial-gradient(420px 300px at 80% 34%,rgba(93,220,255,.22),transparent 70%),radial-gradient(480px 320px at 10% 95%,rgba(155,107,255,.26),transparent 70%),linear-gradient(135deg,#141b52 0%,#0d0f33 55%,#1a0f42 100%)}
.policy[dir=rtl] .policy-hero{background:radial-gradient(420px 300px at 20% 34%,rgba(93,220,255,.22),transparent 70%),radial-gradient(480px 320px at 90% 95%,rgba(155,107,255,.26),transparent 70%),linear-gradient(225deg,#141b52 0%,#0d0f33 55%,#1a0f42 100%)}
.hero-pattern{position:absolute;inset:0;z-index:-1;width:100%;height:100%;opacity:.55}
.hero-pattern path{fill:none;stroke:rgba(150,180,255,.2);stroke-width:1.2;stroke-dasharray:4 7}
.hero-pattern .tick{stroke:rgba(143,230,255,.24);stroke-dasharray:none}
.hero-star{position:absolute;z-index:-1;color:#bfe9ff;font-size:12px;opacity:.25;animation:heroTwinkle 4.6s ease-in-out infinite}
.hero-star:nth-of-type(2n){color:#c9b8ff;font-size:9px;animation-duration:5.8s}
@keyframes heroTwinkle{0%,100%{opacity:.18}50%{opacity:.85}}

.cut-stage{position:absolute;inset:0;z-index:0;pointer-events:none;--px:min(30vw,330px);--py:-64px;--rot:-90deg;--sc-off:63px}
.policy[dir=rtl] .cut-stage{--px:max(-30vw,-330px);--rot:90deg}

/* Portal: a rune ring that sends and recalls the scissors */
.portal{position:absolute;top:calc(31% + 45px - 64px);left:calc(50% + min(30vw,330px));width:150px;height:150px;margin:-75px 0 0 -75px}
.policy[dir=rtl] .portal{left:calc(50% + max(-30vw,-330px))}
.portal-core{position:absolute;inset:26px;border-radius:50%;background:radial-gradient(circle,rgba(232,251,255,.9) 0%,rgba(93,220,255,.55) 18%,rgba(122,92,255,.35) 46%,transparent 70%);animation:portalBreathe 9s .3s ease-in-out infinite}
.portal-ring{position:absolute;inset:6px;border-radius:50%;border:2px solid rgba(143,230,255,.55);box-shadow:0 0 22px rgba(93,220,255,.45),inset 0 0 18px rgba(155,107,255,.45)}
.portal-runes{position:absolute;inset:0;border-radius:50%;border:1.5px dashed rgba(201,184,255,.65);animation:portalSpin 14s linear infinite}
.portal-runes::before,.portal-runes::after{content:"✦";position:absolute;top:-8px;left:50%;margin-left:-6px;color:#cfe9ff;font-size:12px;text-shadow:0 0 8px #5ddcff}
.portal-runes::after{top:auto;bottom:-8px;color:#d9c9ff}
@keyframes portalSpin{to{transform:rotate(360deg)}}
@keyframes portalBreathe{0%{transform:scale(.85);opacity:.8}6%{transform:scale(1.15);opacity:1}14%{transform:scale(.9)}52%{transform:scale(.9);opacity:.8}60%{transform:scale(1.25);opacity:1}70%,100%{transform:scale(.85);opacity:.8}}

/* Thread across the hero */
.cut-thread{position:absolute;inset-inline:0;top:31%;width:100%;height:90px;overflow:visible}
.cut-thread path{fill:none;stroke:url(#policySilk);stroke-width:2.4;stroke-linecap:round}
.cut-thread .thread-aura{stroke-width:9;opacity:.16;animation:auraLoop 9s .3s ease-in-out infinite}
.thread-half{transform-box:fill-box}
.thread-half.half-a{transform-origin:0% 50%;animation:halfALoop 9s .3s cubic-bezier(.3,.7,.3,1) infinite}
.thread-half.half-b{transform-origin:100% 50%;animation:halfBLoop 9s .3s cubic-bezier(.3,.7,.3,1) infinite}
.thread-half path:not(.thread-aura){stroke-dasharray:100 100;animation:threadDraw .5s .1s ease-in both}
.thread-half.half-b path:not(.thread-aura){animation-delay:.5s;animation-timing-function:ease-out}
@keyframes threadDraw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes halfALoop{0%,30%{transform:none;opacity:1}40%,62%{transform:translate(-5%,12px) rotate(-4deg);opacity:.55}80%,100%{transform:none;opacity:1}}
@keyframes halfBLoop{0%,30%{transform:none;opacity:1}40%,62%{transform:translate(5%,12px) rotate(4deg);opacity:.55}80%,100%{transform:none;opacity:1}}
@keyframes auraLoop{0%,64%{opacity:.16}74%{opacity:.6}88%,100%{opacity:.16}}
.cut-spark{position:absolute;top:calc(31% + 45px);left:50%;width:130px;height:130px;margin:-65px 0 0 -65px;border-radius:50%;background:radial-gradient(circle,rgba(232,251,255,.95) 0%,rgba(93,220,255,.55) 22%,transparent 62%);opacity:0;animation:sparkLoop 9s .3s ease-out infinite}
@keyframes sparkLoop{0%,28%{opacity:0;transform:scale(.3)}31%{opacity:1;transform:scale(1)}42%,100%{opacity:0;transform:scale(1.7)}}

/* Gwen's scissors: out of the portal, snip snip, spun back into the portal */
.cut-scissors{position:absolute;top:calc(31% + 45px);left:50%;width:150px;height:196px;margin:-98px 0 0 -12px;animation:scissorsLoop 9s .3s cubic-bezier(.5,0,.3,1) infinite both}
.policy[dir=rtl] .cut-scissors{margin:-98px 0 0 -138px}
.cut-scissors svg{position:relative;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 14px rgba(93,220,255,.6))}
@keyframes scissorsLoop{
 0%{transform:translate(calc(var(--px) - var(--sc-off)),var(--py)) rotate(0deg) scale(.12);opacity:0}
 7%{transform:translate(calc(var(--px) - var(--sc-off)),var(--py)) rotate(calc(var(--rot) * .4)) scale(.55);opacity:1}
 24%,34%{transform:translate(0,0) rotate(var(--rot)) scale(1);opacity:1}
 44%{transform:translate(calc(var(--px) * .12),-18px) rotate(var(--rot)) scale(.92);opacity:1}
 58%{transform:translate(calc(var(--px) - var(--sc-off)),var(--py)) rotate(calc(var(--rot) + 540deg)) scale(.1);opacity:0}
 100%{transform:translate(calc(var(--px) - var(--sc-off)),var(--py)) scale(.1);opacity:0}}
.policy[dir=rtl] .cut-scissors{animation-name:scissorsLoopRtl}
@keyframes scissorsLoopRtl{
 0%{transform:translate(calc(var(--px) + var(--sc-off)),var(--py)) rotate(0deg) scale(.12);opacity:0}
 7%{transform:translate(calc(var(--px) + var(--sc-off)),var(--py)) rotate(calc(var(--rot) * .4)) scale(.55);opacity:1}
 24%,34%{transform:translate(0,0) rotate(var(--rot)) scale(1);opacity:1}
 44%{transform:translate(calc(var(--px) * .12),-18px) rotate(var(--rot)) scale(.92);opacity:1}
 58%{transform:translate(calc(var(--px) + var(--sc-off)),var(--py)) rotate(calc(var(--rot) - 540deg)) scale(.1);opacity:0}
 100%{transform:translate(calc(var(--px) + var(--sc-off)),var(--py)) scale(.1);opacity:0}}
.cut-scissors .blade{transform-origin:0 0;transform-box:view-box}
.cut-scissors .blade-a{animation:snipALoop 9s .3s ease-in-out infinite}
.cut-scissors .blade-b{animation:snipBLoop 9s .3s ease-in-out infinite}
@keyframes snipALoop{0%,24%{transform:rotate(-18deg)}29%{transform:rotate(-1deg)}33%{transform:rotate(-15deg)}37%{transform:rotate(-1deg)}43%,100%{transform:rotate(-14deg)}}
@keyframes snipBLoop{0%,24%{transform:rotate(18deg)}29%{transform:rotate(1deg)}33%{transform:rotate(15deg)}37%{transform:rotate(1deg)}43%,100%{transform:rotate(14deg)}}

/* Title: revealed at the first snip, then glints at every snip */
.policy-hero-copy{position:relative;z-index:1;max-width:560px}
.policy-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.26em;color:var(--cyan);font-weight:700;margin-bottom:16px;animation:fadeUp .7s 2.4s ease-out both}
.policy-eyebrow::before{content:"";width:26px;height:0;border-top:2px dashed currentColor;opacity:.8}
.policy h1{position:relative;display:inline-block;padding-bottom:12px;font-family:var(--serif);font-size:clamp(36px,5.6vw,64px);line-height:1.05;color:var(--white);margin-bottom:14px;text-shadow:0 0 30px rgba(93,220,255,.3);animation:titleLtr 1s 2.85s cubic-bezier(.6,0,.2,1) backwards,titleGlint 9s .3s ease-in-out infinite}
.policy[dir=rtl] h1{font-family:var(--sans);font-weight:800;letter-spacing:0;line-height:1.2;animation-name:titleRtl,titleGlint}
/* The reveal wipe leaves 60px around the title so the glint's glow is never cut into a box; once revealed, no clip stays */
@keyframes titleLtr{from{clip-path:inset(-60px calc(100% + 60px) -60px -60px)}to{clip-path:inset(-60px)}}
@keyframes titleRtl{from{clip-path:inset(-60px -60px -60px calc(100% + 60px))}to{clip-path:inset(-60px)}}
@keyframes titleGlint{0%,28%,48%,100%{text-shadow:0 0 30px rgba(93,220,255,.3)}33%{text-shadow:0 0 22px rgba(232,251,255,.95),0 0 46px rgba(93,220,255,.85)}}
.policy h1::after{content:"";position:absolute;inset-inline-start:0;bottom:0;height:2px;width:100%;background:repeating-linear-gradient(90deg,#8fe6ff 0 9px,transparent 9px 15px);transform-origin:left;transform:scaleX(0);animation:stitchLine .9s 3.6s ease-out both}
.policy[dir=rtl] h1::after{transform-origin:right}
@keyframes stitchLine{to{transform:scaleX(1)}}
.policy-tagline{font-size:17px;color:#dde8ff;max-width:46ch;line-height:1.7;animation:fadeUp .8s 3.3s ease-out both}
.policy-tagline em{font-style:normal;color:#8fe6ff}
.policy-updated{margin-top:14px;color:#a3adda;font-size:12.5px;letter-spacing:.02em;animation:fadeUp .8s 3.5s ease-out both}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- Layout ---------- */
.policy-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:48px;align-items:start;margin-top:34px}

/* Contents: a thread spool with pins; the thread fills and a tiny scissors snips its way down as you read */
.policy-toc{position:sticky;top:22px;padding:6px 0 18px}
.toc-spool{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.toc-spool svg{width:42px;height:52px;flex:none;filter:drop-shadow(0 0 10px rgba(93,220,255,.35))}
.toc-spool strong{font-size:11px;letter-spacing:.22em;color:#cdbcff}
.toc-track{position:relative;--track-h:300px}
.toc-thread,.toc-fill{position:absolute;inset-inline-start:20px;top:0;bottom:0;width:2px;border-radius:2px}
.toc-thread{background:repeating-linear-gradient(180deg,rgba(143,230,255,.4) 0 6px,transparent 6px 11px)}
.toc-fill{background:linear-gradient(180deg,#8fe6ff,#a78aff);box-shadow:0 0 10px rgba(93,220,255,.6);transform-origin:top;transform:scaleY(var(--p,0))}
.toc-scissors{position:absolute;inset-inline-start:7px;top:-14px;width:28px;height:36px;transform:translateY(calc(var(--p,0) * var(--track-h)));filter:drop-shadow(0 0 8px rgba(93,220,255,.7));transition:transform .12s linear}
.toc-scissors svg{width:100%;height:100%;overflow:visible;transform:rotate(180deg)}
.toc-scissors .blade{transform-origin:0 0;transform-box:view-box}
.toc-scissors .blade-a{transform:rotate(-14deg)}
.toc-scissors .blade-b{transform:rotate(14deg)}
.is-scrolling .toc-scissors .blade-a{animation:tocSnipA .32s ease-in-out infinite}
.is-scrolling .toc-scissors .blade-b{animation:tocSnipB .32s ease-in-out infinite}
@keyframes tocSnipA{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(-1deg)}}
@keyframes tocSnipB{0%,100%{transform:rotate(14deg)}50%{transform:rotate(1deg)}}
.policy-toc ol{list-style:none;margin:0;padding:0;position:relative}
.policy-toc li{position:relative;padding-inline-start:46px;margin:0;min-height:40px;display:flex;align-items:center}
.policy-toc li::before{content:"";position:absolute;inset-inline-start:13px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff,#b9c6ea 60%,#6f78a8);box-shadow:0 0 0 3px #0c1135;transition:transform .25s,box-shadow .25s,background .25s}
.policy-toc li::after{content:"";position:absolute;inset-inline-start:21px;top:50%;width:18px;height:1.5px;background:linear-gradient(90deg,rgba(200,215,255,.7),transparent);transform:rotate(-25deg);transform-origin:left}
.policy[dir=rtl] .policy-toc li::after{background:linear-gradient(270deg,rgba(200,215,255,.7),transparent);transform:rotate(25deg);transform-origin:right;inset-inline-start:auto;right:21px}
.policy-toc li.active::before{background:radial-gradient(circle at 35% 30%,#ffffff,#8fe6ff 50%,#7a5cff);box-shadow:0 0 0 3px #0c1135,0 0 16px rgba(93,220,255,.9);transform:scale(1.2)}
.policy-toc a{color:#b9c6ea;text-decoration:none;font-size:13.5px;line-height:1.45;padding:6px 0}
.policy-toc li.active a,.policy-toc a:hover,.policy-toc a:focus-visible{color:#e8fbff}

/* Mobile reading thread at the top of the screen */
.read-thread{position:fixed;top:0;inset-inline:0;height:3px;z-index:50;pointer-events:none;display:none;background:repeating-linear-gradient(90deg,rgba(143,230,255,.35) 0 6px,transparent 6px 11px)}
.read-fill{position:absolute;inset:0;background:linear-gradient(90deg,#8fe6ff,#a78aff);transform-origin:left;transform:scaleX(var(--p,0));box-shadow:0 0 8px rgba(93,220,255,.7)}
.policy-rtl-page .read-fill{transform-origin:right}
.read-scissors{position:absolute;top:-9px;left:0;width:18px;height:22px;transform:translateX(calc(var(--p,0) * (100vw - 18px)));filter:drop-shadow(0 0 6px rgba(93,220,255,.8))}
.policy-rtl-page .read-scissors{left:auto;right:0;transform:translateX(calc(var(--p,0) * (18px - 100vw)))}
.read-scissors svg{width:100%;height:100%;overflow:visible;transform:rotate(90deg)}
.policy-rtl-page .read-scissors svg{transform:rotate(-90deg)}

/* Summary label: a sewn-in tag */
.policy-summary{position:relative;border-radius:16px;padding:26px 28px 22px;margin-bottom:28px;background:linear-gradient(135deg,rgba(30,38,110,.78),rgba(18,14,52,.88));border:1px solid rgba(143,230,255,.3)}
.policy-summary>strong{display:inline-flex;align-items:center;gap:10px;color:#8fe6ff;font-size:15px}
.policy-summary>strong::before{content:"✂";font-size:16px;color:var(--lav)}
.policy-summary ul{margin:12px 0 0;padding-inline-start:20px}

/* Sections as patches; privacy.js sews a thread around each when it comes into view */
.policy section{position:relative;margin-bottom:18px;padding:24px 26px 20px;border-radius:16px;background:linear-gradient(180deg,rgba(22,26,74,.72),rgba(14,14,46,.72));border:1px solid rgba(150,170,255,.18);scroll-margin-top:24px}
.sew-ready .policy section:not(.sewn){opacity:.001;transform:translateY(14px)}
.sew-ready .policy section.sewn{transition:opacity .6s ease-out,transform .6s ease-out}
.stitch-frame{position:absolute;inset:7px;width:calc(100% - 14px);height:calc(100% - 14px);overflow:visible;pointer-events:none}
.stitch-frame rect{fill:none;stroke-width:1.2;vector-effect:non-scaling-stroke}
.stitch-frame .sew{stroke:rgba(143,230,255,.85);stroke-dasharray:100 100;stroke-dashoffset:100;opacity:0}
.stitch-frame .seam{stroke:rgba(170,190,255,.28);stroke-dasharray:5 6;opacity:0}
.sewn .stitch-frame .sew{animation:sewDraw 1.3s ease-out both}
.sewn .stitch-frame .seam{animation:seamIn .6s 1.1s ease-out both}
@keyframes sewDraw{0%{opacity:1;stroke-dashoffset:100}80%{opacity:1;stroke-dashoffset:0}100%{opacity:0;stroke-dashoffset:0}}
@keyframes seamIn{to{opacity:1}}

/* Section numbers: a fabric label hanging on a thread */
.policy h2{display:flex;align-items:center;gap:14px;font-size:19px;color:var(--white);margin-bottom:12px;line-height:1.35}
.stitch-num{flex:none;position:relative;display:inline-flex;align-items:center;height:30px;padding-inline:20px 11px;font:700 12px/1 var(--serif);letter-spacing:.08em;color:#e8fbff;background:linear-gradient(135deg,#2a3a9a,#3a2580);clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 50%);box-shadow:inset 0 0 0 1px rgba(143,230,255,.45)}
.policy[dir=rtl] .stitch-num{clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%)}
.stitch-num::before{content:"№\00a0";color:#8fe6ff;font-family:var(--sans);font-weight:600}
.stitch-num::after{content:"";position:absolute;inset-inline-start:9px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:#0c1135;box-shadow:0 0 0 1.5px rgba(143,230,255,.75)}
.stitch-num>i{position:absolute;inset:3px 4px 3px 15px;border:1px dashed rgba(220,235,255,.45);pointer-events:none}
.policy[dir=rtl] .stitch-num>i{inset:3px 15px 3px 4px}
.sewn .stitch-num{animation:tagSwing 1.1s .8s ease-out both}
@keyframes tagSwing{0%{transform:rotate(-14deg)}35%{transform:rotate(8deg)}65%{transform:rotate(-4deg)}100%{transform:none}}
.policy p,.policy li{color:#d3dcf8;font-size:15.5px;line-height:1.85}
.policy p+p{margin-top:10px}
.policy ul{padding-inline-start:22px;margin:8px 0}
.policy li+li{margin-top:6px}
.policy li::marker{color:#8fe6ff}
.policy strong{color:var(--white)}
.policy a{color:#8fe6ff;text-underline-offset:4px}
.policy [dir=ltr]{unicode-bidi:isolate}
.policy .policy-note{border-inline-start:3px solid var(--violet);padding-inline-start:14px;margin-top:12px}

/* Footer */
.contact-bottom{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:40px;padding-top:24px;padding-bottom:35px;border-top:1px dashed rgba(143,159,211,.26);font-size:11px;color:#97a6cc}
.contact-bottom a{color:#acd7ea;text-underline-offset:4px}
.contact-bottom .made{color:#a9b8de}

/* Rest loops while the hero is off screen or the tab is hidden */
.policy-hero.gw-off *,.policy-hero.gw-off *::before,.policy-hero.gw-off *::after,.policy-hero.gw-off h1{animation-play-state:paused!important}

@media (max-width:900px){
 .policy-layout{grid-template-columns:1fr;gap:0}
 .policy-toc{display:none}
 .read-thread{display:block}
}
@media (max-width:640px){
 .contact-nav{min-height:84px;gap:10px}
 .contact-brand{width:76px}
 .contact-nav nav{gap:12px;font-size:10px;flex-wrap:wrap;justify-content:flex-end}
 .policy-hero{min-height:360px;padding:34px 22px 34px;border-radius:18px}
 .cut-stage{--px:min(30vw,120px);--py:-58px;--sc-off:46px}
 .policy[dir=rtl] .cut-stage{--px:max(-30vw,-120px)}
 .cut-thread{top:22%}
 .cut-spark,.cut-scissors{top:calc(22% + 45px)}
 .portal{top:calc(22% + 45px - 58px);left:calc(50% + min(30vw,120px));width:96px;height:96px;margin:-48px 0 0 -48px}
 .policy[dir=rtl] .portal{left:calc(50% + max(-30vw,-120px))}
 .portal-core{inset:16px}
 .cut-scissors{width:110px;height:144px;margin:-72px 0 0 -9px}
 .policy[dir=rtl] .cut-scissors{margin:-72px 0 0 -101px}
 .policy-tagline{font-size:15.5px}
 .policy section{padding:20px 18px 16px}
 .policy p,.policy li{font-size:15px}
}
/* Phones (where the site turns motion off) and reduced motion: a still frame of the snip */
@media (pointer:coarse),(prefers-reduced-motion:reduce){
 .cut-scissors{transform:rotate(var(--rot));opacity:1}
 .cut-scissors .blade-a{transform:rotate(-3deg)}
 .cut-scissors .blade-b{transform:rotate(3deg)}
 .stitch-frame .seam{opacity:1}
 .policy h1::after{transform:none}
}
@media (prefers-reduced-motion:reduce){
 .privacy-page *,.privacy-page *::before,.privacy-page *::after{animation:none!important;transition:none!important}
 .policy section{opacity:1;transform:none}
 .stitch-frame .seam{opacity:1}
}

/* Logos on this page are at most ~100 px wide, so the 256 px file (44 KB) is enough. */
.logo{background-image:url("assets/gwen_logo-256.webp")}
