    :root{
      /* core ink + paper */
      --fyp-dark:#1c1712;--fyp-mid:#57503f;--fyp-ink3:#6b6454;
      --fyp-cream:#faf6ee;--fyp-cream2:#f3ecdd;--fyp-paper:#fffdf8;--fyp-border:#e7dfcd;
      /* gold accents */
      --fyp-gold:#c19a3f;--fyp-gold-light:#e7cb84;--fyp-gold-deep:#8f6f26;--fyp-walnut:#8f6f26;
      /* action + status */
      --fyp-orange:#f97316;--fyp-orange2:#e35a05;--fyp-green:#1a7f4b;--fyp-greenbg:#e8f5ec;
      /* elevation */
      --fyp-sh1:0 2px 10px rgba(28,23,18,.06);
      --fyp-sh2:0 14px 40px -12px rgba(28,23,18,.22);
      --fyp-sh3:0 24px 70px -18px rgba(28,23,18,.32);
      /* type */
      --fyp-serif:"Fraunces",Georgia,serif;
      --fyp-sans:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;
      --fyp-script:"Great Vibes",cursive;
      /* ---- ported landing-page design tokens ---- */
      --ink:#1c1712;--ink2:#57503f;--ink3:#6b6454;
  --cream:#faf6ee;--cream2:#f3ecdd;--paper:#fffdf8;--line:#e7dfcd;
  --gold:#c19a3f;--gold2:#e7cb84;--gold3:#8f6f26;
  --orange:#f97316;--orange2:#e35a05;--green:#1a7f4b;--greenbg:#e8f5ec;
  --sh1:0 2px 10px rgba(28,23,18,.06);--sh2:0 14px 40px -12px rgba(28,23,18,.22);--sh3:0 24px 70px -18px rgba(28,23,18,.32);
  --gut:clamp(24px,5vw,44px);
  --fd:"Fraunces",Georgia,serif;--fb:"Inter",system-ui,sans-serif;--fs:"Great Vibes",cursive;
    }
    .fyp-pb{font-family:var(--fyp-sans);max-width:1180px;margin:0 auto;padding:clamp(56px,8vw,84px) 20px;-webkit-font-smoothing:antialiased;color:var(--fyp-dark);line-height:1.6;scroll-margin-top:92px;position:relative;background:var(--fyp-cream2,#f3ecdd);box-shadow:0 0 0 100vmax var(--fyp-cream2,#f3ecdd);clip-path:inset(0 -100vmax);}.fyp-pb .fyp-pb-title{font-family:var(--fyp-serif);}
    .fyp-pb ::selection{background:var(--fyp-gold-light);color:var(--fyp-dark);}
    .fyp-pb :focus-visible{outline:3px solid var(--fyp-gold);outline-offset:2px;border-radius:6px;}
    @media(max-width:600px){.fyp-pb{padding:16px 16px 80px;}}
    .fyp-pb *{box-sizing:border-box;}
    .fyp-pb-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:start;}
    /* ===== Studio shell — matches the landing page sections ===== */
    
    .fyp-pb-head{text-align:center;max-width:760px;margin:0 auto 26px;}
    .fyp-pb-kicker{display:block;font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--fyp-gold-deep);margin-bottom:10px;}
    .fyp-pb-h2{font-family:var(--fyp-serif);font-size:clamp(1.9rem,4vw,2.9rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:0 0 10px;color:var(--fyp-dark);}
    .fyp-pb-acc{font-style:italic;font-weight:600;color:var(--fyp-gold-deep);}
    .fyp-pb-lede{color:var(--fyp-mid);font-size:1.02rem;margin:0;}
    /* funnel progress pill */
    .fyp-funnel{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;background:var(--fyp-paper);border:1px solid var(--fyp-border);border-radius:999px;padding:10px 16px;max-width:520px;margin:0 auto 26px;box-shadow:var(--fyp-sh1);}
    .fyp-fs{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--fyp-ink3);}
    .fyp-fs i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--fyp-border);color:var(--fyp-mid);font-style:normal;font-size:.75rem;font-weight:800;}
    .fyp-fs.fyp-fs-on{color:var(--fyp-dark);}
    .fyp-fs.fyp-fs-on i{background:var(--fyp-orange);color:#fff;}
    .fyp-fs.fyp-fs-done i{background:var(--fyp-green);color:#fff;}
    .fyp-fsep{color:var(--fyp-ink3);font-size:.9rem;}
    /* control column reads as a panel, like the concept */
    .fyp-pb-grid>div:last-child{background:var(--fyp-paper);border:1px solid var(--fyp-border);border-radius:22px;padding:clamp(20px,3vw,30px);box-shadow:var(--fyp-sh1);}
    @media(max-width:900px){.fyp-pb-grid>div:last-child{padding:18px;border-radius:16px;}}

    @media(max-width:800px){
        .fyp-pb-grid{grid-template-columns:1fr;}
        .fyp-pb-left{display:none;}
    }

    /* REVEAL ANIMATIONS */
    .fyp-pb .fyp-reveal{transition:opacity 0.55s cubic-bezier(0.4,0,0.2,1),transform 0.55s cubic-bezier(0.4,0,0.2,1);}
    .fyp-pb .fyp-reveal.fyp-pre{opacity:0;transform:translateY(18px);}
    .fyp-pb .fyp-reveal.visible,.fyp-pb .fyp-reveal.fyp-in{opacity:1;transform:none;}
    .fyp-reveal.visible{opacity:1;transform:translateY(0);}
    .fyp-reveal-delay-1{transition-delay:0.08s;}
    .fyp-reveal-delay-2{transition-delay:0.16s;}
    .fyp-reveal-delay-3{transition-delay:0.24s;}

    /* PREVIEW */
    .fyp-pb-left{position:sticky;top:90px;}
    .fyp-frame-box{position:relative;border-radius:3px;overflow:visible;background:var(--fyp-cream);aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;transition:all .3s;}
    .fyp-frame-inner{position:absolute;inset:7px;background:#ede8df;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:1px;}
    .fyp-frame-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
    .fyp-frame-box.gallery-wrap{overflow:visible;}
    .fyp-frame-box.gallery-wrap .fyp-frame-inner{inset:0;border-radius:2px;}
    .fyp-canvas-edge-r{position:absolute;top:3px;left:100%;width:6px;height:calc(100% - 3px);background:#a09078;}
    .fyp-canvas-edge-b{position:absolute;top:100%;left:3px;width:calc(100% - 0px);height:6px;background:#8a7860;}
    .fyp-canvas-edge-corner{position:absolute;top:100%;left:100%;width:6px;height:6px;background:#8a7860;}
    .fyp-prev-img{width:100%;height:100%;object-fit:cover;display:none;transition:opacity 0.4s ease;}
    .fyp-prev-placeholder{text-align:center;color:#bbb;padding:20px;}
    .fyp-prev-placeholder span{font-size:52px;display:block;margin-bottom:8px;}
    .fyp-prev-placeholder p{font-size:13px;line-height:1.4;margin:0;}
    .fyp-style-tag{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:3px 9px;border-radius:100px;letter-spacing:.5px;}
    .fyp-nameplate{text-align:center;margin-top:10px;font-family:var(--fyp-script);font-size:clamp(1.5rem,3.2vw,2.1rem);letter-spacing:0;text-transform:none;font-weight:400;color:var(--fyp-gold-deep);min-height:34px;line-height:1.2;}
    .fyp-trust-pills{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
    .fyp-pill{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--fyp-mid);background:var(--fyp-paper);padding:7px 14px;border-radius:999px;border:1px solid var(--fyp-border);box-shadow:var(--fyp-sh1);}

    /* FORM */
    .fyp-pb-right{display:flex;flex-direction:column;gap:0;}
    .fyp-pb-title{font-family:var(--fyp-serif);font-size:clamp(30px,4vw,46px);font-weight:800;color:var(--fyp-dark);letter-spacing:-0.02em;line-height:1.05;margin:0 0 14px;text-wrap:balance;}
    .fyp-pb-title em{font-style:italic;font-weight:600;color:var(--fyp-gold-deep);}
    .fyp-pb-desc{font-size:15px;color:var(--fyp-mid);line-height:1.6;margin:0 0 24px;}
    .fyp-pb-desc b{color:var(--fyp-dark);}
    .fyp-price-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:16px 0 8px;border-top:1px solid var(--fyp-border);margin-bottom:4px;}
    .fyp-price{font-family:var(--fyp-serif);font-size:2.4rem;font-weight:800;color:var(--fyp-dark);letter-spacing:-0.02em;}
    .fyp-price-note{font-size:11px;color:var(--fyp-ink3);letter-spacing:0.3px;text-transform:uppercase;font-weight:600;}
    .fyp-divider{height:1px;background:var(--fyp-border);margin:24px 0;}

    /* STEP LABEL — uppercase eyebrow + gold serif numeral */
    .fyp-step-lbl{display:flex;align-items:center;gap:10px;margin:26px 0 12px;}
    .fyp-step-lbl[data-num]::before{content:attr(data-num);font-family:var(--fyp-serif);font-size:1rem;font-weight:700;font-style:normal;color:var(--fyp-gold-deep);line-height:1;}
    .fyp-step-lbl:not([data-num])::before{content:"";width:24px;height:1px;background:var(--fyp-border);align-self:center;flex-shrink:0;}
    .fyp-step-lbl-text{font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--fyp-ink3);}

    /* TYPE TOGGLE */
    .fyp-type-toggle{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px;}
    .fyp-type-lbl{cursor:pointer;}
    .fyp-type-lbl input{position:absolute;opacity:0;width:0;height:0;}
    .fyp-type-card{border:1px solid var(--fyp-border);border-radius:14px;padding:0;text-align:center;transition:all .2s cubic-bezier(0.4,0,0.2,1);background:#fff;overflow:hidden;}
    .fyp-type-lbl.on .fyp-type-card{border:1px solid var(--fyp-dark);box-shadow:0 0 0 3px rgba(10,10,10,0.06);}
    .fyp-type-icon{font-size:28px;display:block;margin-bottom:8px;}
    .fyp-type-name{font-size:14px;font-weight:500;color:var(--fyp-dark);letter-spacing:-0.2px;}
    .fyp-type-desc{font-size:11px;color:#737373;margin-top:3px;line-height:1.4;padding:0 8px 14px;}

    /* SIZE */
    .fyp-sizes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
    .fyp-size-lbl,.fyp-gw-size-lbl{cursor:pointer;}
    .fyp-size-lbl input,.fyp-gw-size-lbl input{position:absolute;opacity:0;width:0;height:0;}
    .fyp-size-btn{border:1px solid var(--fyp-border);border-radius:10px;padding:14px 6px;text-align:center;transition:all .18s cubic-bezier(0.4,0,0.2,1);background:#fff;position:relative;}
    .fyp-size-lbl.on .fyp-size-btn,.fyp-gw-size-lbl.on .fyp-size-btn{border:1px solid var(--fyp-dark);background:var(--fyp-dark);color:#fff;}
    .fyp-size-lbl.on .fyp-size-name,.fyp-gw-size-lbl.on .fyp-size-name{color:#fff;}
    .fyp-size-lbl.on .fyp-size-price,.fyp-gw-size-lbl.on .fyp-size-price{color:rgba(255,255,255,0.7);}
    .fyp-size-lbl.on .fyp-size-desc,.fyp-gw-size-lbl.on .fyp-size-desc{color:rgba(255,255,255,0.5);}
    .fyp-size-name{font-size:12px;font-weight:500;color:var(--fyp-dark);letter-spacing:-0.2px;}
    .fyp-size-price{font-family:var(--fyp-serif);font-size:16px;color:#525252;font-weight:400;margin-top:4px;letter-spacing:-0.3px;}
    .fyp-size-desc{font-size:10px;color:#6f6f6f;margin-top:3px;line-height:1.3;text-transform:uppercase;letter-spacing:0.3px;font-weight:500;}

    /* FRAMES */
    .fyp-frames{display:flex;gap:16px;flex-wrap:wrap;}
    .fyp-frame-lbl{cursor:pointer;text-align:center;}
    .fyp-frame-lbl input{position:absolute;opacity:0;width:0;height:0;}
    .fyp-swatch-ring{width:54px;height:54px;border-radius:50%;border:2px solid transparent;transition:all .2s;display:flex;align-items:center;justify-content:center;padding:4px;}
    .fyp-frame-lbl.on .fyp-swatch-ring{border-color:var(--fyp-dark);}
    .fyp-swatch{width:42px;height:42px;border-radius:50%;border:1px solid rgba(0,0,0,.1);transition:transform .2s;}
    .fyp-frame-lbl:hover .fyp-swatch{transform:scale(1.06);}
    .fyp-frame-name{font-size:11px;color:var(--fyp-mid);margin-top:6px;font-weight:500;letter-spacing:-0.1px;}
    .fyp-frame-add{font-size:10px;color:#737373;font-weight:500;}

    /* BACKGROUND PICKER */
    .fyp-bgs{display:flex;gap:10px;flex-wrap:wrap;}
    .fyp-bg-lbl{cursor:pointer;text-align:center;}
    .fyp-bg-lbl input{position:absolute;opacity:0;width:0;height:0;}
    .fyp-bg-btn{padding:3px;border:2px solid transparent;border-radius:10px;transition:all .18s;}
    .fyp-bg-lbl.on .fyp-bg-btn{border-color:var(--fyp-dark);}
    .fyp-bg-swatch{width:52px;height:52px;border-radius:8px;margin:0 auto;border:1px solid rgba(0,0,0,0.1);}
    .fyp-bg-name{font-size:11px;color:var(--fyp-mid);margin-top:4px;font-weight:500;}
    .fyp-bg-price{font-size:10px;color:#737373;font-weight:500;}
    @media(max-width:600px){.fyp-bg-swatch{width:44px;height:44px;}}

    /* FRAMES - bigger swatches on mobile */
    @media(max-width:600px){
        .fyp-swatch-ring{width:62px;height:62px;}
        .fyp-swatch{width:48px;height:48px;}
        .fyp-frame-name{font-size:12px;}
    }

    /* STYLES */
    /* Horizontal swipe carousel — 3rd card peeks to signal more */
    .fyp-styles{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 4px 12px;margin:0 -4px;scrollbar-width:none;cursor:grab;}
    .fyp-styles.fyp-dragging{cursor:grabbing;scroll-snap-type:none;user-select:none;-webkit-user-select:none;}
    .fyp-styles::-webkit-scrollbar{display:none;}
    .fyp-style-lbl{cursor:pointer;flex:0 0 calc(40% - 6px);scroll-snap-align:start;}
    @media(min-width:601px){.fyp-style-lbl{flex:0 0 calc(30% - 8px);}}
    .fyp-style-lbl input{position:absolute;opacity:0;width:0;height:0;}
    .fyp-style-card{border:2px solid var(--fyp-border);border-radius:16px;padding:0;overflow:hidden;transition:all .2s cubic-bezier(0.4,0,0.2,1);background:var(--fyp-paper);position:relative;}
    .fyp-style-lbl.on .fyp-style-card{border:2px solid var(--fyp-dark);box-shadow:0 0 0 4px rgba(193,154,63,.25),var(--fyp-sh2);transform:translateY(-3px);}
    .fyp-style-lbl.on .fyp-style-card-body{background:var(--fyp-dark);}
    .fyp-style-lbl.on .fyp-style-name{color:#fff;}
    .fyp-style-lbl.on .fyp-style-desc{color:rgba(255,255,255,0.7);}
    .fyp-style-lbl.on .fyp-style-price{color:rgba(255,255,255,0.85);}
    .fyp-style-lbl:hover .fyp-style-card{transform:translateY(-2px);border-color:var(--fyp-gold);}
    .fyp-style-lbl.on:hover .fyp-style-card{transform:translateY(-3px);}
    .fyp-style-thumb{width:100%;aspect-ratio:4/5;border-radius:0;flex-shrink:0;background:linear-gradient(135deg,#e8e0d0,#d4c4a8);display:flex;align-items:center;justify-content:center;font-size:36px;overflow:hidden;position:relative;}
    .fyp-style-thumb img{width:100%;height:100%;object-fit:cover;object-position:center top;position:absolute;top:0;left:0;opacity:0;transition:opacity 0.8s ease;}
    .fyp-style-thumb img.active{opacity:1;}
    .fyp-style-card-body{padding:12px 14px;}
    .fyp-style-name{font-size:13px;font-weight:500;color:var(--fyp-dark);letter-spacing:-0.2px;}
    .fyp-style-desc{font-size:11px;color:#737373;margin-top:2px;line-height:1.4;letter-spacing:-0.1px;}
    .fyp-style-price{font-size:11px;color:#525252;font-weight:500;margin-top:3px;}
    .fyp-styles-hint{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:#a89a86;margin-top:8px;font-style:italic;}

    /* style check badge */
    .fyp-style-check{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;background:#1a7a42;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(0.5);transition:all 0.25s cubic-bezier(0.34,1.56,0.64,1);box-shadow:0 2px 8px rgba(26,122,66,0.4);}
    .fyp-style-check svg{width:14px;height:14px;}
    .fyp-style-lbl.on .fyp-style-check{opacity:1;transform:scale(1);}

    @media(max-width:600px){
        .fyp-style-card{border-radius:12px;}
        .fyp-style-thumb{aspect-ratio:4/5;font-size:32px;}
        .fyp-style-desc{display:none;}
        .fyp-style-name{font-size:12px;}
    }

    /* TYPE TOGGLE with image thumbnails */
    .fyp-type-thumb{width:100%;height:100px;border-radius:0;object-fit:cover;display:block;margin-bottom:0;}
    .fyp-type-thumb-placeholder{width:100%;height:90px;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:36px;margin-bottom:0;background:var(--fyp-cream);}

    /* INPUTS */
    .fyp-input{width:100%;border:2px solid var(--fyp-border);border-radius:12px;padding:13px 16px;font-size:.98rem;font-family:inherit;color:var(--fyp-dark);transition:border-color .2s;outline:none;background:var(--fyp-paper);}
    .fyp-input:focus{border-color:var(--fyp-dark);}
    .fyp-input-note{font-size:.83rem;color:var(--fyp-ink3);margin-top:6px;}

    /* UPLOAD */
    .fyp-upload{border:2px dashed #cfc4a8;border-radius:16px;padding:36px 24px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--fyp-cream);position:relative;overflow:hidden;}
    .fyp-upload:hover,.fyp-upload.drag{border-color:var(--fyp-dark);background:#fafaf7;}
    .fyp-upload.done{border-style:solid;border-color:var(--fyp-dark);background:#fafaf7;}
    .fyp-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
    .fyp-upload-icon{font-size:14px;display:block;margin-bottom:10px;}
    .fyp-upload-icon-box{width:52px;height:52px;border-radius:14px;background:var(--fyp-dark);color:#fff;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;}
    .fyp-upload-text{font-size:14px;color:var(--fyp-mid);letter-spacing:-0.1px;}
    .fyp-upload-text strong{color:var(--fyp-dark);font-weight:500;}
    .fyp-upload-sub{font-size:11px;color:#6f6f6f;margin-top:4px;letter-spacing:-0.1px;}
    .fyp-upload-prev{max-width:100%;max-height:160px;border-radius:10px;object-fit:cover;display:none;margin:12px auto 0;}
    .fyp-upload-fname{font-size:12px;color:var(--fyp-dark);font-weight:500;margin-top:6px;display:none;}

    /* UPLOAD PROGRESS BAR */
    #fyp-upload-progress{margin:14px auto 0;max-width:280px;display:none;}
    .fyp-up-bar{width:100%;height:6px;background:rgba(10,10,10,0.08);border-radius:100px;overflow:hidden;}
    .fyp-up-bar-fill{height:100%;background:#0a0a0a;border-radius:100px;width:0%;transition:width 0.3s cubic-bezier(0.4,0,0.2,1);}

    /* URGENCY */

    /* WHAT'S INCLUDED — removed from the builder (was a dark callout box). */

    /* QTY */
    .fyp-qty-row{display:flex;align-items:center;gap:10px;}
    .fyp-qty-btn{width:38px;height:38px;border:1px solid var(--fyp-border);background:#fff;border-radius:10px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--fyp-dark);transition:all .15s;font-family:inherit;}
    .fyp-qty-btn:hover{border-color:var(--fyp-dark);}
    .fyp-qty-input{width:50px;height:38px;border:1px solid var(--fyp-border);border-radius:10px;text-align:center;font-size:15px;font-weight:500;font-family:inherit;}

    /* ATC */
    .fyp-atc{width:100%;background:linear-gradient(180deg,#fb8a2e,var(--fyp-orange) 45%,var(--fyp-orange2));color:#fff;border:none;border-radius:999px;padding:18px;font-size:1.02rem;font-weight:700;cursor:pointer;transition:transform .18s,box-shadow .18s,filter .18s;font-family:inherit;position:relative;overflow:hidden;box-shadow:0 10px 26px -8px rgba(234,90,5,.55),inset 0 1px 0 rgba(255,255,255,.35);}.fyp-atc:hover{transform:translateY(-2px);filter:brightness(1.05);}.fyp-atc:active{transform:translateY(1px);}
    .fyp-atc:hover{transform:translateY(-1px);background:#1a1a1a;}
    .fyp-atc:disabled{background:#d4d4d4;cursor:not-allowed;transform:none;}
    .fyp-atc-note{font-size:11px;color:#6f6f6f;text-align:center;margin-top:10px;letter-spacing:-0.1px;}

    /* AI PORTRAIT PREVIEW */
    .fyp-generate-btn{width:100%;background:linear-gradient(180deg,#fb8a2e,var(--fyp-orange) 45%,var(--fyp-orange2));color:#fff;border:none;border-radius:999px;padding:20px 24px;font-size:1.12rem;font-weight:700;cursor:pointer;transition:transform .18s,box-shadow .18s,filter .18s;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:10px;margin:18px 0 8px;box-shadow:0 10px 26px -8px rgba(234,90,5,.55),inset 0 1px 0 rgba(255,255,255,.35);}.fyp-generate-btn:hover{transform:translateY(-2px);filter:brightness(1.05);}.fyp-generate-btn:active{transform:translateY(1px);}
    /* Progressive step reveal */
    .fyp-progressive-step{animation:fypStepReveal 0.6s cubic-bezier(0.22,1,0.36,1);}
    @keyframes fypStepReveal{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
    .fyp-step-next-btn{background:transparent;color:var(--fyp-dark);border:none;box-shadow:inset 0 0 0 2px var(--fyp-dark);border-radius:999px;padding:12px 28px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;margin-top:14px;transition:background .2s,transform .18s;}.fyp-step-next-btn:hover{background:rgba(28,23,18,.05);transform:translateY(-1px);}
    .fyp-step-next-btn:hover{transform:translateY(-1px);opacity:0.9;}
    .fyp-generate-btn:hover{background-position:right center;transform:translateY(-2px);box-shadow:0 6px 24px rgba(26,107,60,0.45),0 2px 6px rgba(0,0,0,0.12);}
    .fyp-generate-btn:active{transform:translateY(0);box-shadow:0 2px 10px rgba(26,107,60,0.3);}
    .fyp-generate-btn:disabled{background:linear-gradient(135deg,#aaa,#bbb);box-shadow:none;cursor:not-allowed;transform:none;}
    .fyp-generate-note{font-size:.84rem;color:var(--fyp-ink3);text-align:center;margin-bottom:16px;font-weight:600;}
    /* Portrait generation spinner */
    #fyp-ai-generating{display:flex;flex-direction:column!important;align-items:center!important;justify-content:center;gap:24px;padding:48px 32px;background:#fafaf8;width:100%;box-sizing:border-box;text-align:center;}
    .fyp-ai-canvas-wrap{position:relative;width:56px;height:56px;flex-shrink:0;}
    .fyp-ai-brush-ring{display:none;}
    .fyp-ai-brush-ring2{display:none;}
    .fyp-ai-brush-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:20px;}
    .fyp-spinner-svg{position:absolute;inset:0;}
    .fyp-ai-progress-bar{width:100%;max-width:260px;height:2px;background:#e8e8e8;border-radius:100px;overflow:hidden;}
    .fyp-ai-progress-fill{height:100%;background:#0a0a0a;border-radius:100px;width:0%;transition:width 0.8s cubic-bezier(.4,0,.2,1);}
    .fyp-ai-gen-text{font-size:17px;font-weight:500;color:#0a0a0a;letter-spacing:-0.3px;font-family:Georgia,serif;}
    .fyp-ai-gen-sub{font-size:13px;color:#888;line-height:1.6;}
    .fyp-step-dot{display:none;}
    /* Sticky mobile ATC bar */
    #fyp-sticky-atc{position:fixed;bottom:0;left:0;right:0;z-index:9990;background:rgba(255,253,248,.96);backdrop-filter:blur(10px);border-top:1px solid var(--fyp-border);padding:12px 18px calc(12px + env(safe-area-inset-bottom));display:none;align-items:center;gap:14px;box-shadow:0 -8px 30px rgba(28,23,18,.12);}
    #fyp-sticky-atc button{flex:1;background:linear-gradient(180deg,#fb8a2e,var(--fyp-orange) 45%,var(--fyp-orange2));color:#fff;border:none;border-radius:999px;padding:14px;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 10px 26px -8px rgba(234,90,5,.55),inset 0 1px 0 rgba(255,255,255,.35);}
    #fyp-sticky-atc #fyp-sticky-btn{display:block;width:100%;}
    #fyp-bump-row input{width:15px;height:15px;margin:0;}
    #fyp-sticky-trust b{color:#57452F;}
    @media(min-width:801px){#fyp-sticky-atc{display:none!important;}}
    /* Blur gate — portrait visible but unreadable until email */
    #fyp-ai-results-panel.fyp-blurred .fyp-render-grid{filter:blur(12px);pointer-events:none;user-select:none;transition:filter 0.6s ease;}
    #fyp-ai-results-panel.fyp-blurred::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,0.25);border-radius:inherit;z-index:9;pointer-events:none;}
    #fyp-ai-results-panel .fyp-render-grid{transition:filter 0.6s ease;}
    @keyframes fypArcSpin{0%{stroke-dashoffset:37}50%{stroke-dashoffset:-113}100%{stroke-dashoffset:-263}}
    @keyframes fypOfferPulse{0%,100%{opacity:1}50%{opacity:0.4}}
    .fyp-render-grid{display:flex;flex-direction:row;gap:14px;padding:16px 20px 20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;justify-content:center;}
    .fyp-render-grid:has(.fyp-render-card:nth-child(2)){justify-content:flex-start;}
    .fyp-render-grid::-webkit-scrollbar{display:none;}
    .fyp-render-grid:active{cursor:grabbing;}
    .fyp-render-card{position:relative;flex:0 0 82%;max-width:340px;scroll-snap-align:center;border-radius:16px;overflow:hidden;cursor:pointer;border:3px solid transparent;transition:border-color .2s,box-shadow .2s;background:#f0ece5;aspect-ratio:3/4;}
    .fyp-render-card img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
    .fyp-render-card-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.6));padding:28px 10px 10px;border-radius:0 0 13px 13px;}
    .fyp-render-card-label span{color:#fff;font-size:12px;font-weight:600;letter-spacing:0.2px;text-shadow:0 1px 2px rgba(0,0,0,0.5);display:block;}
    .fyp-render-card-check{display:none;position:absolute;top:9px;right:9px;width:24px;height:24px;background:#0a0a0a;border-radius:50%;align-items:center;justify-content:center;}
    .fyp-render-card.selected{border-color:#0a0a0a;box-shadow:0 0 0 2px #0a0a0a;}
    .fyp-render-card.selected .fyp-render-card-check{display:flex;}
    /* Swipe hint shown when more than 1 card */
    .fyp-swipe-hint{text-align:center;font-size:12px;color:#6f6f6f;padding:0 20px 4px;display:none;}
    .fyp-swipe-hint.visible{display:block;}
    @media(max-width:600px){
        .fyp-render-card{flex:0 0 90%;max-width:none;}
    }
    /* Inline portrait zone */
    #fyp-portrait-zone{margin:20px 0 0;border-radius:20px;overflow:hidden;background:#fafaf7;border:1px solid rgba(0,0,0,0.07);width:100%;box-sizing:border-box;}
    .fyp-portrait-zone-header{padding:20px 20px 8px;text-align:center;}
    .fyp-portrait-zone-title{font-family:Georgia,serif;font-size:20px;font-weight:400;color:#0a0a0a;letter-spacing:-0.5px;margin-bottom:4px;}
    .fyp-portrait-zone-sub{font-size:13px;color:#737373;}
    .fyp-portrait-zone-actions{padding:14px 20px 20px;border-top:1px solid rgba(0,0,0,0.07);display:flex;flex-direction:column;gap:10px;align-items:center;}
    .fyp-use-portrait-btn{width:100%;max-width:420px;background:linear-gradient(135deg,#1a7a42 0%,#22a355 50%,#1a7a42 100%);background-size:200% auto;color:#fff;border:none;border-radius:100px;padding:17px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;font-family:inherit;letter-spacing:-0.2px;box-shadow:0 4px 18px rgba(26,107,60,0.35);}
    .fyp-use-portrait-btn:hover{background-position:right center;transform:translateY(-2px);}
    .fyp-try-style-btn{background:none;border:1px solid rgba(0,0,0,0.15);border-radius:100px;padding:10px 24px;font-size:13px;color:#525252;cursor:pointer;font-family:inherit;transition:all .2s;}
    .fyp-try-style-btn:hover{border-color:rgba(0,0,0,0.3);color:#0a0a0a;}
    .fyp-portrait-zone-note{font-size:11px;color:#6f6f6f;margin:0;text-align:center;}
    /* Upload photo thumbnail confirmation */
    #fyp-upload-thumb-row{display:none;align-items:center;gap:10px;margin-top:10px;padding:8px 12px;background:#f0faf4;border-radius:10px;border:1px solid #9ae6b4;}
    #fyp-upload-thumb-row img{width:44px;height:44px;border-radius:8px;object-fit:cover;flex-shrink:0;}
    .fyp-upload-thumb-ok{font-size:13px;color:#1a7a42;font-weight:600;}
    .fyp-upload-thumb-sub{font-size:11px;color:#555;}
    .fyp-msg.err{background:#fff0f0;border:1px solid #fcc;color:#c00;}
    .fyp-msg.ok{background:#f0fff4;border:1px solid #9ae6b4;color:#276749;}
    .fyp-msg:empty{display:none!important;}
    .fyp-msg.ok{background:#f0fff4;border:1px solid #9ae6b4;color:#276749;}
    .fyp-spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:fypSpin .7s linear infinite;vertical-align:middle;margin-left:8px;display:none;}
    @keyframes fypSpin{to{transform:rotate(360deg);}}

    /* PROGRESS BAR */
    .fyp-progress-bar{height:3px;background:rgba(10,10,10,0.06);border-radius:0;margin-bottom:0;overflow:hidden;position:sticky;top:0;z-index:10;}
    .fyp-progress-fill{height:100%;background:var(--fyp-dark);border-radius:0;transition:width .4s cubic-bezier(0.4,0,0.2,1);}

    /* PROOF LINE */
    .fyp-proof-line{font-size:12px;color:var(--fyp-mid);text-align:center;margin-bottom:12px;padding:12px;background:rgba(10,10,10,0.03);border-radius:12px;letter-spacing:-0.1px;display:flex;align-items:center;justify-content:center;gap:6px;}

    /* FRAME NUDGE */
    .fyp-frame-nudge{font-size:12px;color:#737373;font-weight:500;margin-top:6px;text-align:center;letter-spacing:-0.1px;}

    /* RECENTLY ORDERED POPUP */
    @keyframes fypSlideIn{from{opacity:0;transform:translateX(-20px);}to{opacity:1;transform:translateX(0);}}

    /* ORDER COUNTER */
    .fyp-order-counter{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fyp-mid);margin-bottom:6px;letter-spacing:-0.1px;}
    @keyframes fypPulse{0%,100%{opacity:1;}50%{opacity:.4;}}

    /* POPULAR BADGE */
    .fyp-popular-badge{display:inline-block;font-size:9px;font-weight:500;letter-spacing:0.3px;text-transform:uppercase;background:var(--fyp-dark);color:#fff;padding:3px 8px;border-radius:100px;margin-left:6px;vertical-align:middle;}
    .fyp-style-popular{position:relative;}
    .fyp-style-popular-tag{position:absolute;top:10px;left:10px;font-size:10px;font-weight:500;background:rgba(255,255,255,0.95);color:var(--fyp-dark);padding:4px 10px;border-radius:100px;white-space:nowrap;letter-spacing:0.2px;z-index:2;}
    .fyp-style-custom-badge{background:#0a0a0a;color:#fff;}

    /* SECTION WRAP */
    .fyp-section{padding:0 0 24px;border-bottom:1px solid var(--fyp-border);margin-bottom:0;}
    .fyp-section:last-of-type{border-bottom:none;}
