/* CloudGeek V1.3 — editorial surfaces, bounded compositions, native interactions. */
:root { --paper:#f8f7f3; --ink:#151c31; --muted:var(--text-secondary); --purple:#6941d0; --dark:#0c1224; --line:#dddfe4; --cyan:#79dedb; }
body { background:var(--paper); }
/* Secondary information stays readable; long contact details may reflow. */
footer, .piece-content, .dialog-copy, .field { overflow-wrap:anywhere; }
header, .hero-section, .invitation-section, .laser-section, .quote-section, .final-cta { --focus-color:#79dedb; }
.quote-form { --focus-color:#086b78; }
header { background:#0c1224ed; color:#f7f8ff; border-bottom:1px solid #ffffff12; }
header.scrolled { background:#0c1224f5; border-color:#ffffff14; box-shadow:0 8px 32px #0209171c; }
header .brand span { color:#a38bff; } header .brand svg { stroke:#a38bff; }
nav>a:not(.button):hover,nav>a.active { color:var(--cyan); }
nav>a.active { text-decoration:underline; text-underline-offset:7px; text-decoration-thickness:1px; }
.button { border-radius:5px; gap:25px; min-height:52px; padding:15px 23px; font-size:var(--text-button); }
.button:hover { box-shadow:0 10px 30px #774ef32e; }
.button-small { min-height:42px; padding:10px 16px; font-size:var(--text-button); }
.button-outline { background:transparent; color:var(--ink); border-color:#aeb3c1; }
.button-white { background:white; color:var(--ink); border-color:white; }
.text-link { font-size:var(--text-button); }
.eyebrow { font-size:var(--text-label); letter-spacing:var(--tracking-label); }
h2 { font-size:var(--text-heading); letter-spacing:-2.7px; }
h2 em { color:#6243ba; }
.hero-section { position:relative; isolation:isolate; overflow:hidden; background:var(--dark); color:#fbfaff; }
.hero-glow { position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 80% 45%,#42316e88,transparent 48%),radial-gradient(ellipse at 20% 85%,#16455455,transparent 38%); }
.hero-section:before { content:''; position:absolute; inset:0; z-index:-1; opacity:.14; background-image:linear-gradient(#99b1d91a 1px,transparent 1px),linear-gradient(90deg,#99b1d91a 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(90deg,transparent,#000); }
.hero { padding:155px 0 70px; min-height:760px; grid-template-columns:1.02fr 1fr; gap:25px; }
.hero-copy { position:relative; z-index:2; }
.hero .eyebrow { font-size:var(--text-label); color:#b2a8dc; letter-spacing:var(--tracking-label); gap:10px; }
.dot { background:var(--cyan); box-shadow:0 0 0 4px #79dedb12; }
h1 { font-size:clamp(55px,5.65vw,81px); line-height:1.1; font-weight:500; letter-spacing:-4.6px; margin:26px 0 28px; }
h1>span { display:block; }
h1 em { display:block; color:#b1a0ff; font-family:Georgia,serif; font-size:1.03em; font-weight:400; letter-spacing:-4px; background:linear-gradient(100deg,#ac92ff 5%,#bca6ff 65%,#87deda); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-description { font-size:var(--text-body); line-height:var(--leading-body); color:var(--text-on-dark); max-width:420px; margin-bottom:32px; }
.hero .text-link { color:#e6e5f5; border-color:#606376; }
.hero-note { display:flex; align-items:center; gap:13px; margin-top:36px; }
.hero-note>span { font-size:25px; color:var(--cyan); }
.hero-note p { font-size:var(--text-small); color:var(--text-on-dark); }
.hero-note strong { color:#d2d6e5; font-weight:400; }
.hero-composition { position:relative; height:625px; min-width:0; }
.composition-kicker { position:absolute; top:6px; left:95px; font-size:var(--text-label); letter-spacing:var(--tracking-label); color:var(--text-muted-dark); }
.orbit { position:absolute; border:1px solid #8574c331; border-radius:50%; pointer-events:none; }
.orbit-one { width:500px; height:500px; left:15px; top:10px; }
.orbit-two { width:380px; height:380px; left:75px; top:70px; border-color:#91d9d829; }
.hero-creation { display:block; position:absolute; border:1px solid #ffffff38; box-shadow:0 20px 55px #02081755; border-radius:10px; overflow:hidden; transition:transform .5s,box-shadow .5s; }
.hero-creation img { width:100%; height:100%; object-fit:contain; transition:transform .7s; }
.hero-creation:hover img { transform:scale(1.045); }
.hero-creation>span { position:absolute; bottom:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 12px; background:#fffdf7; color:#2a2835; font-size:var(--text-label); line-height:1.4; letter-spacing:.025em; }
.hero-creation i { font-size:18px; font-style:normal; }
.creation-mdf { left:10px; right:35px; height:310px; top:80px; transform:rotate(-7deg); background:#dadad5; z-index:1; padding-bottom:30px; }
.creation-mdf>span { top:0; bottom:auto; padding:9px 16px; background:#f7f6f0e8; }
.creation-card { width:238px; height:210px; right:-3px; top:300px; transform:rotate(8deg); z-index:3; background:#f5eee9; padding:4px 4px 48px; }
.creation-sticker { width:185px; height:193px; left:12px; top:355px; transform:rotate(-11deg); z-index:2; background:linear-gradient(130deg,#b8e8d7,#80c5c5); padding:15px 15px 48px; }
.composition-star { position:absolute; right:20px; top:20px; z-index:2; font-size:61px; font-weight:400; color:var(--cyan); animation:star-drift 10s ease-in-out infinite; }
.composition-caption { position:absolute; bottom:0; right:0; left:0; text-align:right; }
.composition-caption>span { font-size:var(--text-label); letter-spacing:1.4px; color:var(--text-muted-dark); }
.composition-caption p { font-size:var(--text-small); color:var(--text-muted-dark); margin-top:5px; }
.hero-bottom { border-top:1px solid #ffffff15; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding:20px 0; font-size:var(--text-small); letter-spacing:.05em; color:var(--text-muted-dark); }
.hero-bottom a { display:flex; align-items:center; gap:20px; color:#dadbeb; font-size:var(--text-button); letter-spacing:0; }
.hero-bottom a span { color:var(--cyan); font-size:20px; }
.ticker { background:#d8eee8; color:#2a4650; padding:18px 0; }
.ticker div { font-size:var(--text-label); letter-spacing:.075em; gap:14px 24px; white-space:normal; flex-wrap:wrap; }
.ticker span { color:#44695e; font-size:17px; }
.section { padding:90px 0; }
.catalog-section .section-heading { align-items:center; margin-bottom:40px; }
.catalog-intro { max-width:370px!important; }
.catalog-intro>p { font-size:var(--text-body); }
.catalog-intro .fine-print { font-size:var(--text-small); line-height:var(--leading-body); margin-top:16px; }
.catalog-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding:24px 0; margin-bottom:8px; }
.catalog-toolbar .filters { margin:0; gap:6px; }
.catalog-toolbar .filters button { padding:10px 16px; min-height:42px; font-size:var(--text-button); border-radius:4px; border-color:transparent; }
.catalog-toolbar .filters button.active { background:var(--ink); color:white; }
.catalog-toolbar .filters button:hover:not(.active) { border-color:#cdd1dd; background:#efedf5; }
#gallery-status { font-size:var(--text-small); color:var(--text-secondary); white-space:nowrap; }
.catalog-grid { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:40px 25px; align-items:start; }
.catalog-piece { grid-column:span 4; min-width:0; }
.catalog-piece.spotlight:first-child { grid-column:span 7; }
.catalog-piece.spotlight:nth-child(2) { grid-column:span 5; }
.catalog-piece[hidden] { display:none; }
.piece-visual { overflow:hidden; border-radius:7px; background:#ecebe8; }
.catalog-piece .image-button { border:0; border-radius:0; width:100%; aspect-ratio:1.25; background:#eeede9; padding:20px; display:block; }
.catalog-piece .image-button img { width:100%; height:100%; aspect-ratio:auto; object-fit:contain; transition:transform .7s; }
.catalog-piece.spotlight .image-button { aspect-ratio:1.38; padding:25px; }
.catalog-piece.spotlight:nth-child(2) .image-button { aspect-ratio:0.99; }
.catalog-piece[data-product-id="mandala"] .image-button { padding:0; background:#dbdedb; }
.catalog-piece[data-product-id="butterfly"] .image-button { padding:0; }
.catalog-piece[data-product-id="sticker-diecut"] .image-button { background:#d7e8e2; }
.catalog-piece[data-product-id="sticker-holo"] .image-button { background:#e2dcf3; }
.catalog-piece[data-product-id="sticker-labels"] .image-button { background:#ede8dc; }
.catalog-piece[data-product-id="roses"] .image-button { background:#f3f1f5; }
.catalog-piece[data-product-id="roses"] img { mix-blend-mode:multiply; }
.catalog-piece.invitation-piece .image-button { background:#e9e4ed; padding:15px; aspect-ratio:1.25; }
.catalog-piece.invitation-piece img { object-fit:contain; }
.image-button>.zoom-mark { bottom:14px; right:14px; width:36px; height:36px; display:grid; place-items:center; border-radius:50%; padding:0; background:#fafaf5f0; font-size:18px; transition:background .25s,color .25s; }
.image-button:hover>.zoom-mark { background:var(--ink); color:white; }
/* Inset two-tone focus rings remain visible inside clipped image frames. */
.image-button:focus-visible, .invitation-preview:focus-visible { outline:none; }
.image-button:focus-visible:after, .invitation-preview:focus-visible:after {
 content:''; position:absolute; inset:6px; border:3px solid #ffffff;
 outline:3px solid #151c31; border-radius:3px; pointer-events:none; z-index:5;
}
.catalog-piece .image-button:hover img { transform:scale(1.035); }
.piece-content { padding:18px 1px 0; }
.piece-label { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.piece-label small { color:var(--text-accent); font-size:var(--text-label); font-weight:600; letter-spacing:var(--tracking-label); }
.piece-label>span { font-size:var(--text-label); color:var(--text-secondary); }
.piece-content h3 { font-size:var(--text-product-title); line-height:1.25; letter-spacing:-.55px; font-weight:600; margin:8px 0 12px; }
.catalog-piece.spotlight h3 { font-size:var(--text-product-title); }
.piece-content>p { font-size:var(--text-product); line-height:var(--leading-body); min-height:0; max-width:520px; }
.similar-link { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:13px 0; border-top:1px solid #d9dbe2; border-bottom:1px solid #d9dbe2; font-weight:600; font-size:var(--text-button); margin-top:18px; transition:color .2s,padding .2s; }
.similar-link:hover { color:var(--purple); padding-left:5px; }
.similar-link>span { font-size:var(--text-button); }
.piece-credit { display:flex; flex-wrap:wrap; gap:4px 10px; font-size:var(--text-small); color:var(--text-secondary); margin-top:9px; }
.piece-credit>span { color:var(--text-secondary); }
.piece-credit a { text-decoration:underline; text-underline-offset:3px; }
.piece-credit a:hover { color:var(--purple); }
.catalog-grid.filtered .catalog-piece { grid-column:span 4; }
.catalog-grid.filtered .catalog-piece .image-button { aspect-ratio:1.25; }
.catalog-grid.filtered .catalog-piece h3 { font-size:var(--text-product-title); }
.catalog-piece.entering { animation:catalog-enter .4s ease both; }
.collection-action { display:none; text-align:center; padding:35px 0 0; }
.js .collection-action { display:block; }
.collection-action .button { min-width:240px; }
.collection-action p { font-size:var(--text-body); margin-top:12px; }
.collection-action[hidden] { display:none!important; }
.catalog-row { border-top:1px solid var(--line); padding-top:27px; margin-top:40px; }
.catalog-row h3 { font-size:var(--text-product-title); font-weight:500; margin-bottom:6px; }
.catalog-row p { font-size:var(--text-body); }
.catalog-disclaimer { display:flex; gap:15px; align-items:flex-start; border-top:1px solid var(--line); margin-top:25px; padding-top:22px; }
.catalog-disclaimer>span { font-size:23px; color:var(--text-accent); }
.catalog-disclaimer p { max-width:730px; font-size:var(--text-body); }
.catalog-disclaimer a { white-space:nowrap; margin-left:auto; font-size:var(--text-button); color:#6d5a97; }
.invitation-section { position:relative; isolation:isolate; overflow:hidden; padding:90px 0 60px; background:#0d1429; color:#f8f6ff; }
.invitation-halo { position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 62% 26%,#56409666,transparent 45%),radial-gradient(ellipse at 5% 70%,#264f6844,transparent 40%); }
.invitation-layout { display:grid; grid-template-columns:1.1fr 1fr .65fr; gap:40px; align-items:center; }
.invitation-copy { min-width:0; }
.invitation-copy .eyebrow { color:#a79bce; font-size:var(--text-label); letter-spacing:var(--tracking-label); }
.invitation-copy h2 { font-size:var(--text-heading); line-height:1.15; letter-spacing:-2.7px; }
.invitation-copy h2 em { color:#b3a1fa; }
.invitation-copy>p:not(.eyebrow) { color:var(--text-on-dark); font-size:var(--text-body); line-height:var(--leading-body); margin-top:25px; max-width:350px; }
.invitation-points { margin:27px 0 32px; display:flex; flex-direction:column; gap:12px; font-size:var(--text-body); color:#d4d8e6; }
.invitation-points i { font-size:var(--text-label); color:var(--cyan); margin-right:14px; font-style:normal; }
.invitation-copy .fine-print { font-size:var(--text-small) !important; max-width:330px!important; color:var(--text-muted-dark)!important; }
.invitation-stage { position:relative; display:flex; flex-direction:column; align-items:center; padding:35px 0 20px; min-width:0; }
.stage-caption { font-size:var(--text-label); letter-spacing:var(--tracking-label); color:var(--text-muted-dark); margin-bottom:25px; text-align:center; }
.phone { width:270px; max-width:100%; border:7px solid #6e7186; border-radius:38px; box-shadow:0 0 0 1px #dadbea33,0 28px 70px #0008; background:#1f2340; transform:rotate(-3deg); }
.phone:before { background:#242a3e; width:85px; height:15px; }
.phone video { width:100%; height:auto; aspect-ratio:608/1080; object-fit:contain; background:#181d30; }
.stage-rings { position:absolute; width:380px; height:380px; top:90px; border:1px solid #b79aff26; border-radius:50%; z-index:-1; box-shadow:0 0 0 35px #9a8bdd05,0 0 0 70px #9a8bdd04; }
.stage-star { position:absolute; font-size:67px; color:var(--cyan); right:-5px; top:30px; pointer-events:none; }
.video-foot { display:flex; flex-direction:column; align-items:center; margin-top:25px; gap:10px; }
.video-foot>span { font-size:var(--text-label); letter-spacing:var(--tracking-label); color:var(--text-muted-dark); }
.video-download { margin:0; font-size:var(--text-button); color:#d4d9eb; border-color:#686783; }
.video-status { font-size:var(--text-body); max-width:280px; color:#a5d7d6; margin-top:12px; }
.invitation-side { align-self:center; display:flex; flex-direction:column; gap:28px; padding-left:5px; }
.side-design { width:175px; min-height:240px; display:grid; grid-template-rows:190px auto; gap:8px; position:relative; padding:8px; background:#eef0ed; border-radius:7px; box-shadow:0 15px 35px #0004; transform:rotate(7deg); }
.side-design:nth-child(2) { transform:rotate(-7deg); margin-left:12px; background:#f5eaf1; }
.side-design img { width:100%; height:100%; object-fit:contain; }
.side-design span { font-size:var(--text-small); line-height:1.5; color:var(--text-secondary); text-align:center; }
.invitation-side>p { color:var(--text-on-dark); font-size:var(--text-body); line-height:var(--leading-body); padding-left:10px; }
.invitation-side>p em { color:#c7b4e8; font-family:Georgia,serif; font-size:var(--text-body); }
.invitation-showcase { margin-top:60px; padding-top:35px; border-top:1px solid #ffffff17; }
.invitation-showcase-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:25px; }
.invitation-showcase-heading .eyebrow { color:var(--text-muted-dark); font-size:var(--text-label); margin-bottom:13px; }
.invitation-showcase-heading h3 { font-size:var(--text-product-title); font-weight:500; letter-spacing:-1px; }
.invitation-showcase-heading h3 em { font-family:Georgia; font-weight:400; color:#b2a2e2; }
.invitation-showcase-heading>p { font-size:var(--text-body); color:var(--text-on-dark); max-width:230px; margin-left:auto; }
.rail-controls { display:flex; gap:7px; }
.rail-controls button { min-width:48px; min-height:48px; border:1px solid #8995b0; background:transparent; color:#e1e0f1; border-radius:50%; font-size:22px; transition:background .2s; }
.rail-controls button:hover { background:#3b355e; }
.rail-controls button:disabled { opacity:.3; cursor:default; }
.invitation-rail { display:grid; grid-auto-columns:calc((100% - 60px)/4); grid-auto-flow:column; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#4f426e transparent; padding:0 0 17px; }
.invitation-reference { min-width:0; scroll-snap-align:start; }
.invitation-preview { display:block; position:relative; width:100%; aspect-ratio:.7; padding:12px; border:1px solid #8a82ad36; border-radius:7px; background:#ece8ec; overflow:hidden; }
.invitation-preview img { width:100%; height:100%; object-fit:contain; transition:transform .5s; }
.invitation-preview:hover img { transform:scale(1.025); }
.invitation-preview>span { position:absolute; bottom:10px; right:10px; font-size:var(--text-button); background:#fffdf5e8; color:var(--ink); padding:7px 10px; border-radius:20px; }
.invitation-ref-info { padding-top:15px; }
.invitation-ref-info h3 { font-size:var(--text-product-title); font-weight:500; color:#dedfeb; }
.invitation-ref-info>a { display:inline-block; font-size:var(--text-button); color:#b9a5ed; margin-top:9px; min-height:30px; }
.invitation-source { display:block; font-size:var(--text-small); line-height:1.6; color:var(--text-muted-dark); margin-top:7px; text-decoration:underline; text-underline-offset:3px; }
.invitation-source-note { color:var(--text-muted-dark); font-size:var(--text-small); margin-top:18px; max-width:780px; }
.brand-section-heading { max-width:680px; margin-bottom:35px; }
.brand-section-heading>p:last-child { margin-top:22px; max-width:385px; font-size:var(--text-body); }
.brand-editorial { display:grid; grid-template-columns:1.15fr 1fr; gap:25px; }
.brand-feature { display:grid; grid-template-columns:1fr 1fr; align-items:center; border-radius:7px; overflow:hidden; background:#eae7e2; min-width:0; }
.brand-feature:nth-child(2) { background:#dfe9e4; }
.brand-feature img { width:100%; height:100%; aspect-ratio:1; object-fit:contain; padding:15px; transition:transform .5s; }
.brand-feature:hover img { transform:scale(1.035); }
.brand-feature>div { padding:25px 20px; }
.brand-feature small { font-size:var(--text-label); letter-spacing:var(--tracking-label); color:var(--text-secondary); }
.brand-feature h3 { font-size:var(--text-product-title); font-weight:500; line-height:1.3; letter-spacing:-.8px; margin:12px 0 23px; }
.brand-feature span { font-size:var(--text-button); padding-bottom:5px; border-bottom:1px solid #a5a8ae; }
.brand-section>.fine-print { font-size:var(--text-small); max-width:720px; margin-top:20px; }
.service-card { border-radius:7px; padding:25px; background:transparent; }
.service-icon { background:#eae7f1; color:#78679d; }
.laser-section { background:#172d3b; padding:80px 0; }
.laser-copy h2 em { color:#8bcfc7; }
.laser-copy .eyebrow { color:#8cd5ce; }
.laser-image { position:relative; overflow:hidden; border-radius:7px; }
.laser-image img { border-radius:7px; width:100%; height:420px; object-fit:contain; background:#c6c6c1; }
.laser-image>span { bottom:15px; left:15px; font-size:var(--text-label); letter-spacing:.8px; background:#fffdf7df; padding:6px 9px; border-radius:3px; }
.laser-source { position:absolute; top:15px; right:15px; padding:7px 10px; font-size:var(--text-button); color:var(--ink); background:#fffdf7e8; border-radius:20px; }
.floral-section { padding:75px 0; background:#ebe7f0; }
.floral-layout { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.floral-art { position:relative; padding:35px; background:#f8f6f8; border-radius:100px 100px 8px 8px; }
.floral-art .image-button { aspect-ratio:1; border-radius:0; background:transparent; }
.floral-art img { width:100%; height:100%; object-fit:contain; aspect-ratio:1; mix-blend-mode:multiply; }
.floral-art-label { display:block; margin-top:18px; font-size:var(--text-label); letter-spacing:.05em; color:var(--text-secondary); }
.floral-credit { font-size:var(--text-small); display:block; text-align:center; margin-top:12px; color:var(--text-secondary); text-decoration:underline; text-underline-offset:3px; }
.floral-copy>p:not(.eyebrow) { font-size:var(--text-body); max-width:360px; margin-top:24px; }
.floral-options { display:flex; gap:7px; flex-wrap:wrap; margin:25px 0; }
.floral-options>span { padding:6px 10px; font-size:var(--text-label); border:1px solid #cbbfd6; border-radius:20px; }
.floral-copy .fine-print { font-size:var(--text-small) !important; }
.process-section { padding-top:0; }
.event-copy { padding:45px; }
.event-photo img { object-fit:cover; }
.event-panel { border-radius:8px; }
.quote-section { background:#111b2e; }
.quote-copy .eyebrow { color:#93cfcd; }
.quote-copy h2 em { color:#b5a4ed; }
.quote-form { border-radius:8px; }
.quote-form input,.quote-form select,.quote-form textarea { font-size:var(--text-input); min-height:44px; }
.field label { font-size:var(--text-body); }
.faq-section { gap:70px; }
.final-cta { background:linear-gradient(110deg,#54429b,#283652 75%,#264747); }
.final-cta h2 { font-size:var(--text-heading); }
.final-cta h2 em { color:#c2bbe8; }
.floating-wa { background:#226f61; }
#image-dialog { width:min(1100px,94vw); max-width:none; padding:25px; max-height:92vh; border-radius:10px; }
.dialog-layout { display:grid; grid-template-columns:1.3fr 1fr; gap:30px; align-items:center; }
.dialog-visual { min-width:0; background:#e9e7e3; border-radius:5px; overflow:hidden; }
.dialog-visual img { width:100%; height:65vh; max-height:650px; object-fit:contain; border-radius:0; }
.dialog-navigation { display:flex; align-items:center; justify-content:space-between; padding:10px 15px; background:#f4f2ed; border-top:1px solid var(--line); }
.dialog-navigation button { border:1px solid #bcc2ce; background:transparent; color:var(--ink); border-radius:50%; min-width:44px; min-height:44px; }
.dialog-navigation button:hover { background:#e5e1ed; }
.dialog-navigation button:disabled { opacity:.3; cursor:default; }
.dialog-navigation span { font-size:var(--text-small); color:var(--muted); }
#image-dialog .dialog-close { top:14px; right:14px; width:44px; height:44px; z-index:2; border:1px solid #d8d8df; }
.dialog-copy { padding:20px 15px 20px 0; }
.dialog-copy .eyebrow { font-size:var(--text-label); margin-bottom:20px; }
.dialog-copy h3 { font-size:30px; margin:0 0 17px; line-height:1.2; letter-spacing:-1px; }
.dialog-copy>p { font-size:var(--text-body); line-height:var(--leading-body); }
.dialog-copy .dialog-notice { font-size:var(--text-small); margin:20px 0 25px; border-top:1px solid var(--line); padding-top:18px; }
#dialog-source { display:block; margin-top:20px; color:#6c54a2; font-size:var(--text-button); }
#dialog-source[hidden] { display:none; }
@keyframes star-drift { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-9px); } }
@keyframes catalog-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media(min-width:1600px) { .hero { min-height:800px; } }
@media(max-width:1100px) {
 .menu-toggle { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; width:48px; height:48px; border:1px solid #ffffff40; border-radius:8px; background:transparent; }
 .menu-toggle span { width:20px; height:2px; background:#edeafc; }
 header nav { display:none; position:absolute; top:100%; left:0; right:0; padding:20px; background:#0c1224; border-bottom:1px solid #ffffff26; align-items:stretch; }
 header nav.open { display:flex; flex-direction:column; }
 header nav>a { padding:10px; }
 .hero { gap:20px; padding-top:140px; min-height:690px; } h1 { font-size:61px; letter-spacing:-3.5px; } h1 em { letter-spacing:-3px; } .hero-description { font-size:var(--text-body); max-width:350px; }
 .hero-composition { height:560px; } .creation-mdf { height:275px; top:70px; left:20px; right:10px; } .creation-card { width:190px; height:180px; top:290px; right:0; } .creation-sticker { width:150px; height:160px; left:18px; top:325px; } .orbit-one { width:410px; height:410px; left:0; } .orbit-two { width:310px; height:310px; left:45px; } .composition-caption { left:0; bottom:0; } .composition-kicker { left:55px; top:15px; font-size:var(--text-label); } .composition-star { font-size:47px; top:24px; right:0; }
 .catalog-toolbar { display:block; } #gallery-status { margin-top:15px; } .catalog-grid { gap:35px 20px; } .piece-content h3 { font-size:var(--text-product-title); } .invitation-layout { grid-template-columns:1fr 1fr; gap:45px; } .invitation-side { display:none; } .invitation-copy h2 { font-size:var(--text-heading); } .invitation-rail { grid-auto-columns:calc((100% - 40px)/3); } .brand-editorial { gap:18px; } .brand-feature { grid-template-columns:1fr; } .brand-feature img { height:260px; padding:20px; } .brand-feature>div { padding:20px 25px 25px; } .brand-feature h3 { margin:10px 0 17px; } .floral-layout { gap:45px; }
}
@media(max-width:900px) { .form-row { grid-template-columns:1fr; gap:0; } }
@media(max-width:430px) { .footer-grid { grid-template-columns:1fr; } .footer-bottom { align-items:flex-start; flex-direction:column; gap:14px; } }
@media(max-width:760px) {
 header .menu-toggle { border-color:#ffffff2b; } header .menu-toggle span { background:#edeafc; } header nav { background:#0c1224; color:#f3f0ff; border-color:#ffffff1c; }
 .hero { padding-top:120px; padding-bottom:35px; grid-template-columns:1fr; gap:35px; min-height:0; } .hero .eyebrow { font-size:var(--text-label); letter-spacing:var(--tracking-label); } h1 { font-size:clamp(45px,9.5vw,67px); line-height:1.1; letter-spacing:-2.8px; margin:22px 0 23px; } h1 em { letter-spacing:-2.5px; } .hero-description { font-size:var(--text-body); max-width:470px; } .hero .actions { gap:22px; } .hero-note { margin-top:25px; } .hero-composition { width:min(510px,100%); margin:auto; height:430px; } .creation-mdf { left:18px; right:15px; top:50px; height:250px; } .creation-card { top:258px; width:190px; height:160px; right:4px; } .creation-sticker { left:16px; top:280px; width:150px; height:155px; } .composition-kicker { top:5px; left:40px; } .composition-caption { display:none; } .composition-star { font-size:45px; top:0; right:2px; } .orbit-one { width:360px; height:360px; left:10px; top:5px; } .orbit-two { width:280px; height:280px; left:50px; top:45px; } .hero-creation>span { font-size:var(--text-label); padding:10px 11px; } .hero-bottom { padding:16px 0; } .hero-bottom>span { display:none; } .hero-bottom>a { margin-left:auto; } .ticker { padding:15px 0; } .ticker div { gap:25px; font-size:var(--text-label); }
 .section { padding:65px 0; } h2 { font-size:var(--text-heading); letter-spacing:-2px; } .catalog-intro { max-width:none!important; } .catalog-section .section-heading { margin-bottom:25px; } .catalog-intro>p { font-size:var(--text-body); } .catalog-intro .fine-print { font-size:var(--text-small); } .catalog-toolbar { padding:20px 0; } .catalog-toolbar .filters { gap:5px; } .catalog-toolbar .filters button { min-height:44px; padding:10px 13px; font-size:var(--text-button); border:1px solid #d9dce5; } #gallery-status { font-size:var(--text-small); }
 .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 18px; } .catalog-piece,.catalog-grid.filtered .catalog-piece { grid-column:span 1; } .catalog-piece.spotlight:first-child,.catalog-piece.spotlight:nth-child(2) { grid-column:span 2; } .catalog-piece .image-button,.catalog-grid.filtered .catalog-piece .image-button { aspect-ratio:1; padding:15px; } .catalog-piece.spotlight .image-button { aspect-ratio:1.35; padding:20px; } .catalog-piece.spotlight:first-child .image-button { padding:0; } .catalog-grid.filtered .catalog-piece.spotlight { grid-column:span 1; } .catalog-grid.filtered .catalog-piece.spotlight .image-button { aspect-ratio:1; } .catalog-piece.spotlight h3 { font-size:var(--text-product-title); } .piece-content h3,.catalog-grid.filtered .catalog-piece h3 { font-size:var(--text-product-title); } .piece-content>p { font-size:var(--text-product); min-height:0; } .piece-label small { font-size:var(--text-label); letter-spacing:var(--tracking-label); } .similar-link { font-size:var(--text-button); min-height:45px; } .piece-credit { font-size:var(--text-small); } .catalog-row h3 { font-size:var(--text-product-title); } .catalog-row p { font-size:var(--text-body); } .catalog-disclaimer { flex-wrap:wrap; gap:10px; } .catalog-disclaimer p { flex:1; font-size:var(--text-body); } .catalog-disclaimer a { margin-left:33px; width:100%; font-size:var(--text-button); }
 .invitation-section { padding:65px 0 45px; } .invitation-layout { grid-template-columns:1fr; gap:32px; } .invitation-copy .eyebrow { font-size:var(--text-label); } .invitation-copy h2 { font-size:var(--text-heading); letter-spacing:-2.7px; } .invitation-copy h2 em br { display:none; } .invitation-copy>p:not(.eyebrow) { max-width:460px; font-size:var(--text-body); } .invitation-copy .fine-print { max-width:440px!important; font-size:var(--text-small) !important; } .invitation-stage { padding:20px 0 0; } .phone { width:260px; transform:rotate(-2deg); } .stage-caption { margin-bottom:20px; font-size:var(--text-label); } .stage-rings { top:85px; width:300px; height:300px; } .stage-star { right:20px; top:18px; font-size:54px; } .invitation-showcase { margin-top:45px; padding-top:28px; } .invitation-showcase-heading { flex-wrap:wrap; gap:15px; align-items:center; } .invitation-showcase-heading>div:first-child { flex:1; min-width:220px; } .invitation-showcase-heading h3 { font-size:var(--text-product-title); } .invitation-showcase-heading>p { order:3; max-width:none; width:100%; margin-left:0; font-size:var(--text-body); } .rail-controls { margin-left:auto; } .rail-controls button { min-width:48px; min-height:48px; } .invitation-rail { grid-auto-columns:calc((100% - 20px)/2); } .invitation-preview { aspect-ratio:.67; padding:9px; } .invitation-ref-info h3 { font-size:var(--text-product-title); } .invitation-ref-info>a { font-size:var(--text-button); min-height:35px; } .invitation-source { font-size:var(--text-small); }
 .brand-section-heading { margin-bottom:28px; } .brand-editorial { grid-template-columns:1fr 1fr; gap:15px; } .brand-feature img { height:190px; padding:10px; } .brand-feature>div { padding:15px; } .brand-feature small { font-size:var(--text-label); letter-spacing:var(--tracking-label); } .brand-feature h3 { font-size:var(--text-product-title); } .brand-feature span { font-size:var(--text-button); } .service-card { padding:21px; } .laser-section { padding:55px 0; } .laser-image img { height:320px; } .floral-section { padding:55px 0; } .floral-layout { grid-template-columns:1fr; gap:35px; } .floral-art { padding:30px; max-width:430px; margin:auto; } .floral-copy>p:not(.eyebrow) { max-width:none; } .event-copy { padding:30px; } .process-section { padding-top:0; } .final-cta h2 { font-size:var(--text-heading); } .faq-section { gap:35px; }
 #image-dialog { padding:15px; max-height:92dvh; } .dialog-layout { grid-template-columns:1fr; gap:20px; } .dialog-visual img { height:auto; aspect-ratio:4/3; max-height:45vh; } .dialog-copy { padding:0 5px 10px; } .dialog-copy h3 { font-size:25px; margin-bottom:12px; } .dialog-copy .eyebrow { margin-bottom:12px; } .dialog-copy .dialog-notice { margin:15px 0; padding-top:13px; } .dialog-copy .button { width:100%; } #dialog-source { margin-top:13px; }
}
@media(max-width:500px) {
 .catalog-grid { grid-template-columns:1fr; gap:33px; } .catalog-piece,.catalog-grid.filtered .catalog-piece,.catalog-piece.spotlight:first-child,.catalog-piece.spotlight:nth-child(2),.catalog-grid.filtered .catalog-piece.spotlight { grid-column:auto; } .catalog-piece .image-button,.catalog-piece.spotlight .image-button,.catalog-grid.filtered .catalog-piece .image-button,.catalog-grid.filtered .catalog-piece.spotlight .image-button { aspect-ratio:1.22; padding:19px; } .catalog-piece[data-product-id="mandala"] .image-button,.catalog-piece[data-product-id="butterfly"] .image-button { padding:0; } .catalog-piece.invitation-piece .image-button { aspect-ratio:1.15; padding:15px; } .piece-content h3,.catalog-piece.spotlight h3,.catalog-grid.filtered .catalog-piece h3 { font-size:var(--text-product-title); } .piece-label small { font-size:var(--text-label); letter-spacing:var(--tracking-label); } .piece-content>p { font-size:var(--text-product); } .similar-link { font-size:var(--text-button); margin-top:16px; padding:14px 0; } .piece-credit { font-size:var(--text-small); } .invitation-rail { grid-auto-columns:73%; gap:16px; } .invitation-ref-info h3 { font-size:var(--text-product-title); } .invitation-preview { padding:13px; aspect-ratio:.72; } .invitation-ref-info>a { font-size:var(--text-button); min-height:36px; } .invitation-source { font-size:var(--text-small); }
}
@media(max-width:380px) {
 .container { width:calc(100% - 32px); } .hero { padding-top:110px; } h1 { font-size:43px; letter-spacing:-2px; } h1 em { letter-spacing:-2px; font-size:.99em; } .hero .eyebrow { font-size:var(--text-label); letter-spacing:var(--tracking-label); } .hero .actions { gap:16px; } .hero .button { padding:13px 15px; gap:13px; font-size:var(--text-button); } .hero .text-link { font-size:var(--text-button); gap:10px; } .hero-composition { height:365px; } .creation-mdf { top:43px; height:210px; left:12px; right:10px; } .creation-card { width:155px; height:145px; top:216px; right:0; } .creation-sticker { width:123px; height:135px; top:235px; left:10px; padding:10px 10px 48px; } .orbit-one { width:280px; height:280px; } .orbit-two { width:210px; height:210px; left:42px; top:45px; } .composition-kicker { font-size:var(--text-label); left:20px; } .composition-star { font-size:38px; } .hero-creation>span { font-size:var(--text-label); padding:9px; letter-spacing:var(--tracking-label); } .hero-description { font-size:var(--text-body); } .catalog-toolbar .filters button { font-size:var(--text-button); padding:10px 11px; } h2 { font-size:var(--text-heading); } .invitation-copy h2 { font-size:var(--text-heading); } .phone { width:235px; } .stage-star { right:0; font-size:45px; } .invitation-showcase-heading>div:first-child { min-width:190px; } .invitation-showcase-heading h3 { font-size:var(--text-product-title); } .rail-controls button { min-width:48px; min-height:48px; } .brand-editorial { grid-template-columns:1fr; } .brand-feature { grid-template-columns:1fr 1fr; } .brand-feature img { height:210px; } .brand-feature h3 { font-size:var(--text-product-title); } .service-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-creation:hover img,.catalog-piece .image-button:hover img,.invitation-preview:hover img,.brand-feature:hover img { transform:none; }
 .composition-star,.catalog-piece.entering { animation:none; }
}
.invitation-copy h2 em br { display:initial; }



