/* Scarlett's gravity field. Scoped; existing site content stays untouched. */
.gf-hero{position:relative;overflow:hidden;background:#f7f6f1;color:#103c33;padding:28px 5.5% 22px;isolation:isolate}
.gf-layout{max-width:1280px;margin:auto;display:grid;grid-template-columns:43% 57%;grid-template-rows:auto auto auto;align-items:center}
.gf-heading{grid-column:1;grid-row:1;align-self:end;z-index:2;padding-top:42px}
.gf-eyebrow{font-size:12px;letter-spacing:.09em;font-weight:600;margin:0 0 26px;color:#32554b}
.gf-eyebrow span{color:#a78350;margin:0 4px}
.gf-hero h1{font-family:'Noto Serif TC',serif;font-size:clamp(38px,5.2vw,76px);font-weight:600;line-height:1.45;letter-spacing:-.035em;margin:0;color:#103c33}
.gf-copy{grid-column:1;grid-row:2;align-self:start;z-index:2;padding:25px 28px 40px 0}
.gf-copy>p:first-child{max-width:405px;font-size:16px;line-height:1.95;color:#40594f;margin:0 0 29px}
.gf-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.gf-button{display:inline-flex;justify-content:center;align-items:center;gap:25px;min-height:49px;padding:12px 22px;border:1px solid #103c33;border-radius:3px;font-size:13px;font-weight:600;text-decoration:none;transition:background .2s,color .2s;letter-spacing:.04em}
.gf-primary{background:#103c33;color:#f7f6f1!important}.gf-primary:hover{background:#215b4d}.gf-secondary{color:#103c33!important}.gf-secondary:hover{background:#e9eee6}
.gf-button:focus-visible,.gf-motion:focus-visible{outline:3px solid #103c33;outline-offset:5px}
.gf-services{font-size:11px!important;letter-spacing:.08em;color:#6c7c6f;margin:23px 0 0!important}.gf-services span{color:#b4b7a7;padding:0 5px}
.gf-stage{position:relative;grid-column:2;grid-row:1 / 3;width:100%;margin-left:0;aspect-ratio:1.2;align-self:center;contain:layout paint;pointer-events:none}
.gf-halo{position:absolute;inset:0 -16% 0 5%;border-radius:49% 48% 20% 35%;background:radial-gradient(ellipse at 69% 35%,#376a52 0%,#164939 45%,#103c33 76%);mask-image:linear-gradient(#000 82%,transparent 100%)}
.gf-grid{display:none}
.gf-grid:before{content:'';position:absolute;inset:8% -4%;border:1px solid #c0965c30;border-radius:50%;transform:rotate(39deg)}
.gf-static,.gf-canvas{position:absolute;inset:0}.gf-canvas{opacity:0;transition:opacity .45s}.gf-canvas canvas{display:block;width:100%;height:100%}
.gf-live .gf-canvas{opacity:1}.gf-live .gf-static{opacity:0}
.gf-person{position:absolute!important;left:15.97%!important;top:2.68%!important;width:68.06%!important;height:89.83%!important;object-fit:fill!important;mask:url('./portrait-mask.svg') center / 100% 100% no-repeat;-webkit-mask:url('./portrait-mask.svg') center / 100% 100% no-repeat;max-width:none}
.gf-person{mask-mode:luminance}
.gf-signal{position:absolute;left:7%;top:30%;max-width:145px;color:#f7f6f1;background:#103c33e8;border-left:2px solid #c0965c;padding:8px 12px;font:11px monospace;opacity:0;transition:opacity .4s;letter-spacing:.04em}
.gf-signal[data-visible="true"]{opacity:1}
.back-to-top[hidden]{display:none}
.gf-ribbon{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.gf-source{position:absolute;right:4%;top:17%;display:flex;flex-direction:column;gap:17px;align-items:flex-start;color:#f7f6f1;font-size:13px;letter-spacing:.04em}
.gf-source span{padding:3px 0;text-shadow:0 1px 8px #103c33}
.gf-source span:before{content:'';display:inline-block;width:5px;height:5px;border:1px solid #c0965c;border-radius:50%;margin:0 10px 2px 0}
.gf-outcomes{position:absolute;right:7%;bottom:2.5%;display:flex;gap:25px;font-size:14px;font-weight:600;letter-spacing:.12em}
.gf-outcomes span:before{content:'';display:block;width:5px;height:5px;border-radius:50%;background:#ae8248;margin:0 auto 9px;box-shadow:0 0 0 5px #c0965c10}
.gf-hero[data-phase="4"] .gf-outcomes span:before{box-shadow:0 0 0 7px #c0965c25,0 0 20px #c0965c}
.gf-caption{position:absolute;left:7%;bottom:1%;right:7%;font-family:monospace;font-size:8px;letter-spacing:.22em;color:#637a6a;display:flex;justify-content:space-between;margin:0}
.gf-proof{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1.1fr 1.1fr .8fr;border-top:1px solid #103c3324;margin-top:12px;padding:24px 0 10px;align-items:center}
.gf-proof>div{padding-left:34px;border-left:1px solid #103c3324}.gf-proof>div:first-child{padding-left:0;border:0}
.gf-proof strong{font-family:'Noto Serif TC',serif;font-size:40px;font-weight:500;line-height:1.2;letter-spacing:-.04em}.gf-proof strong span{font-size:19px;margin-left:4px}
.gf-proof p{font-size:10px;letter-spacing:.045em;color:#526a5e;margin:9px 0 0}.gf-proof .gf-proof-note{text-align:right;font-size:10px;line-height:1.8}
.gf-motion{position:absolute;right:16px;bottom:8px;min-height:44px;min-width:44px;border:0;background:transparent;color:#526a5e;cursor:pointer;font-size:10px;padding:10px}
.gf-motion[hidden]{display:none}.gf-motion-label{margin-left:3px}
@media(min-width:1500px){.gf-hero{padding-top:35px;padding-bottom:35px}.gf-stage{max-height:600px}}
@media(max-width:1000px) and (min-width:701px){.gf-hero{padding-left:4%;padding-right:4%}.gf-hero h1{font-size:40px}.gf-heading{padding-top:20px}.gf-copy{padding-right:5px}.gf-eyebrow{font-size:10px}.gf-button{padding:10px 14px;gap:12px}.gf-copy>p:first-child{font-size:13px}.gf-stage{width:115%}.gf-proof strong{font-size:30px}}
@media(max-width:700px){
.gf-hero{padding:23px 22px 31px}.gf-layout{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto auto}
.gf-heading{grid-column:1;grid-row:1;align-self:auto;padding:0}.gf-eyebrow{font-size:10px;letter-spacing:.03em;margin-bottom:14px}.gf-eyebrow span{margin:0}
.gf-hero h1{font-size:clamp(33px,9.1vw,48px);line-height:1.35;letter-spacing:-.035em}
.gf-stage{grid-column:1;grid-row:2;width:calc(100% + 34px);margin:2px -17px -3px;max-height:340px;aspect-ratio:1.2}
.gf-copy{grid-column:1;grid-row:3;padding:11px 0 0}.gf-copy>p:first-child{font-size:12px;line-height:1.85;margin:0 0 17px;max-width:none}
.gf-actions{gap:9px;flex-wrap:nowrap}.gf-button{font-size:12px;min-height:46px;padding:10px 13px;flex:1;gap:15px;white-space:nowrap}.gf-services{display:none}
.gf-source{font-size:8px;gap:10px;right:3%}.gf-outcomes{font-size:10px;gap:20px;bottom:2%;right:7%}.gf-caption{font-size:6px;bottom:0}
.gf-proof{grid-column:1;grid-row:4;grid-template-columns:1fr 1.2fr 1fr;gap:0;margin-top:24px;padding-top:18px}
.gf-proof>div{padding-left:12px}.gf-proof strong{font-size:26px}.gf-proof strong span{font-size:13px;margin-left:2px}.gf-proof p{font-size:8px;letter-spacing:0;white-space:nowrap}.gf-proof .gf-proof-note{grid-column:1/-1;text-align:left;font-size:8px;margin-top:17px}.gf-proof-note br{display:none}.gf-motion-label{display:none}
}
@media(prefers-reduced-motion:reduce){.gf-canvas{display:none}.gf-static{opacity:1!important}.gf-button{transition:none}}

/* Reference-locked artwork. The UI remains native; the raster contains no UI. */
.gf-layout{max-width:1440px}
@media(min-width:1001px){
 .gf-layout{grid-template-rows:330px auto auto}
 .gf-heading{padding-top:0}
 .gf-stage{max-height:none}
 .gf-copy>p:first-child{max-width:540px;font-family:'Noto Serif TC',serif;font-size:19px;line-height:1.85}
 .gf-actions .gf-button{min-width:232px;min-height:64px;font-size:17px;border-radius:8px}
 .gf-proof{position:relative;grid-template-columns:repeat(3,1fr);padding:25px 0 28px}
 .gf-proof>div{text-align:center;padding-left:0}
 .gf-proof strong{font-size:44px}
 .gf-proof p{font-size:15px}
 .gf-proof .gf-proof-note{position:absolute;right:100px;bottom:0;font-size:8px}
}
.gf-hero h1{font-size:clamp(40px,6.25vw,99px);line-height:1.32;width:115%}
.gf-button{min-width:200px;min-height:56px;font-size:15px}
.gf-stage{overflow:hidden}
.gf-static{opacity:1!important}
.gf-art,.gf-canvas{position:absolute;top:-14%;right:-4%;left:auto;bottom:auto;height:130%;width:auto;aspect-ratio:1;max-width:none;mask-image:linear-gradient(to right,transparent,black 10%);transform:translate(var(--art-x,0px),var(--art-y,0px))}
.gf-art{object-fit:contain}
.gf-canvas{pointer-events:none}
.gf-source{top:17%;right:6%;font-family:'Noto Serif TC',serif;font-size:15px;gap:15px}
.gf-signature{position:absolute;right:5%;top:51%;color:#d0aa6d;font-family:'Snell Roundhand','URW Chancery L',cursive;font-size:48px;line-height:1.1;transform:rotate(-9deg)}
.gf-signature small{display:block;margin-top:12px;padding-left:33px;color:#f7f6f1;letter-spacing:.18em;font:8px/1.65 sans-serif;transform:rotate(9deg)}
.gf-outcomes{color:#f7f6f1;right:7%;bottom:4%;gap:35px;font-family:'Noto Serif TC',serif;font-size:17px;font-weight:500}
.gf-outcomes span:before{background:#f6dfa2;box-shadow:0 0 10px #f6dfa2}
.gf-live .gf-outcomes span{text-shadow:0 0 calc(var(--arrival,0)*18px) #ffe7a9}
.gf-live .gf-outcomes span:before{transform:scale(calc(1 + var(--arrival,0)*.9));box-shadow:0 0 calc(6px + var(--arrival,0)*20px) #f6dfa2}
@media(min-width:701px) and (max-width:1000px){.gf-stage{width:100%}}
@media(max-width:1000px) and (min-width:701px){.gf-hero h1{font-size:44px}.gf-button{min-width:0;min-height:49px;font-size:13px}.gf-signature{font-size:33px}.gf-source{font-size:11px}.gf-outcomes{font-size:12px;gap:20px}}
@media(max-width:700px){.gf-hero h1{font-size:clamp(33px,9.1vw,48px);width:100%}.gf-button{min-width:0;min-height:46px;font-size:12px}.gf-art,.gf-canvas{top:-6%;right:-4%;height:110%}.gf-signature{font-size:27px;right:4%;top:53%}.gf-signature small{font-size:5px;margin-top:5px;padding-left:12px}.gf-source{font-size:9px;gap:7px;top:17%;right:4%}.gf-source span:before{margin-right:5px;width:3px;height:3px}.gf-outcomes{font-size:11px;gap:17px;right:6%;bottom:4%}}
