:root{--bg:#fff7f2;--paper:#fffdfa;--ink:#342727;--red:#b64749;--red-dark:#943337;--pink:#f7cbd3;--blush:#ffe8e7;--line:#e9dcd6;--muted:#786b68;--shadow:0 25px 65px rgba(109,49,57,.1);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b94a61;outline-offset:3px}img{max-width:100%}[hidden]{display:none!important}.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.28;background-image:radial-gradient(#b9817e 0.45px,transparent .45px);background-size:9px 9px}.page-shell{max-width:1250px;margin:0 auto;padding:0 38px}.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.logo{text-decoration:none;display:inline-flex;align-items:center;gap:12px;color:var(--ink);letter-spacing:.085em;font-weight:900;font-size:18px}.logo-stamp{height:40px;width:40px;display:grid;place-items:center;border:1.5px solid var(--red);color:var(--red);font-family:serif;font-size:25px;transform:rotate(-5deg);border-radius:2px}.logo-accent{color:var(--red)}.header-side,.overline,.eyebrow,.panel-header,.choice-set legend,.feature-ribbon,.site-footer,.subcopy,.art-caption,.result-stamp{font-size:11px;font-weight:800;letter-spacing:.18em}.header-side{display:flex;align-items:center;gap:8px;color:#997d79}.header-dot{width:8px;height:8px;border-radius:50%;background:var(--red)}.screen{min-height:calc(100dvh - 168px)}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;padding:66px 0 56px}.hero-copy{padding:10px 0 20px}.eyebrow{color:var(--red)}.tiny-flower{font-size:14px}.hero-copy h1,.section-head h2,.result-controls h3{font-family:Georgia,"Times New Roman",serif;font-weight:normal;letter-spacing:-.055em;line-height:1.06}.hero-copy h1{font-size:clamp(57px,6.1vw,90px);max-width:620px;margin:29px 0 18px}.hero-copy h1 em,.section-head h2 em,.result-controls h3 em{font-weight:normal;color:var(--red)}.japanese-text{font-size:24px;letter-spacing:.18em;color:var(--red);margin:0}.hero-description{max-width:420px;font-size:16px;line-height:1.85;color:var(--muted);margin:25px 0 33px}.btn{border:0;border-radius:4px;font-size:12px;font-weight:850;letter-spacing:.11em;display:inline-flex;align-items:center;justify-content:center;gap:18px;transition:transform .15s ease,background .15s ease,color .15s ease;min-height:48px;padding:15px 21px}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn-primary{background:var(--red);color:white;box-shadow:0 8px 0 rgba(146,50,56,.13)}.btn-primary:hover:not(:disabled){background:var(--red-dark)}.btn-giant{padding:23px 32px;font-size:13px}.btn-outline{border:1px solid var(--red);background:transparent;color:var(--red)}.btn-outline:hover{background:var(--blush)}.btn-text{color:var(--red);background:transparent;box-shadow:none}.subcopy{color:#ae9691;font-size:10px;line-height:1.8;letter-spacing:.07em;margin-top:27px}.hero-art{position:relative;min-height:550px;background:#f6dcd7;border-radius:47% 47% 6px 6px;overflow:hidden;box-shadow:var(--shadow);border:10px solid var(--paper)}.hero-art img{height:100%;width:100%;position:absolute;inset:0;object-fit:cover}.art-caption{position:absolute;bottom:0;width:100%;padding:28px 18px;background:linear-gradient(transparent,rgba(39,18,34,.65));color:white;display:flex;justify-content:space-between;align-items:center}.art-caption span:first-child{font-size:24px;font-family:serif;letter-spacing:.06em}.feature-ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-around;gap:16px;padding:24px 10px;color:var(--red);margin-bottom:40px}.feature-ribbon b{color:var(--ink);margin-left:10px}.site-footer{min-height:70px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:10px;color:#8b7c76}.section-head{display:flex;align-items:start;justify-content:space-between;margin:40px 0 29px}.section-head h2{font-size:clamp(40px,5vw,62px);margin:7px 0 0}.overline{color:var(--red);margin:0}.studio-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:38px;margin-bottom:52px}.camera-column{min-width:0}.camera-viewport{position:relative;aspect-ratio:3/2;border-radius:8px;overflow:hidden;background:#37292d;isolation:isolate;box-shadow:var(--shadow);border:10px solid #fff}.camera-viewport[data-layout=single][data-zoom=fill]{aspect-ratio:3/4;max-height:650px;width:100%}.camera-viewport video{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;transform:scaleX(-1);background:#242124}.camera-viewport[data-camera=environment] video{transform:none}.camera-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 68%,rgba(0,0,0,.26));z-index:1}.camera-frame{position:absolute;inset:13px;border:3px solid var(--frame-border);border-radius:3px;color:var(--frame-text);pointer-events:none;z-index:2;display:flex;flex-direction:column;justify-content:space-between}.camera-frame::before,.camera-frame::after{content:'✿';position:absolute;top:34%;font-size:24px;color:var(--frame-text)}.camera-frame::before{left:12px}.camera-frame::after{right:12px}.camera-frame-top,.camera-frame-bottom{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;letter-spacing:.14em;font-size:12px;font-weight:900;background:var(--frame-panel)}.camera-frame-bottom{font-size:9px}.camera-deco{font-size:19px}.theme-sakura{--frame-border:#ffe7ef;--frame-panel:rgba(147,62,90,.72);--frame-text:#fff}.theme-tokyo{--frame-border:#93eef0;--frame-panel:rgba(19,20,61,.83);--frame-text:#f9f2ff}.theme-matsuri{--frame-border:#ffc95b;--frame-panel:rgba(139,30,36,.8);--frame-text:#fff8c7}.theme-zen{--frame-border:#efe7d6;--frame-panel:rgba(48,57,47,.76);--frame-text:#f9f5e8}.camera-viewport.theme-tokyo .camera-frame::before,.camera-viewport.theme-tokyo .camera-frame::after{content:'✧'}.camera-viewport.theme-matsuri .camera-frame::before,.camera-viewport.theme-matsuri .camera-frame::after{content:'祭'}.camera-viewport.theme-zen .camera-frame::before,.camera-viewport.theme-zen .camera-frame::after{content:'◌'}.countdown-layer{position:absolute;z-index:10;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(24,18,27,.45);color:white;text-shadow:0 4px 24px #211821}.countdown-layer #countdownNumber{font-family:Georgia,serif;font-size:clamp(100px,21vw,180px);line-height:1}.countdown-layer #countdownHint{font-weight:900;letter-spacing:.25em;font-size:15px}.flash-layer{position:absolute;inset:0;background:white;z-index:11;opacity:0;pointer-events:none}.flash-layer.flash{animation:shutter .3s ease-out}@keyframes shutter{0%{opacity:.95}100%{opacity:0}}.camera-error{position:absolute;inset:14px;z-index:20;display:flex;align-items:center;justify-content:center;padding:28px;text-align:center;background:#4e333c;color:white;font-size:15px;line-height:1.8}.camera-actions{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:18px}.btn-icon{color:var(--red);background:var(--paper);border:1px solid var(--line)}.btn-icon span{font-size:11px}.capture-btn{min-width:184px}.capture-progress{text-align:center;font-size:10px;letter-spacing:.1em;color:#947f78;font-weight:800}.camera-tip{color:var(--muted);font-size:12px;line-height:1.6}.customize-panel{background:var(--paper);border:1px solid var(--line);padding:28px 28px 24px;box-shadow:0 10px 30px rgba(112,76,67,.04)}.panel-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:19px;color:var(--red)}.panel-header span:last-child{font-size:27px}.choice-set{border:0;margin:25px 0 0;padding:0}.choice-set legend{color:var(--ink);margin-bottom:15px}.frame-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.frame-option{border:1px solid var(--line);background:white;min-width:0;padding:7px 5px 9px;border-radius:5px;color:var(--muted);font-size:11px;line-height:1.4}.frame-option.selected,.format-choice.selected{border:2px solid var(--red);padding:6px 4px 8px;background:#fff8f5;color:var(--ink)}.mini-frame{width:100%;aspect-ratio:3/4;max-height:92px;margin-bottom:9px;display:grid;place-items:center;position:relative;overflow:hidden;font-family:Georgia,serif}.mini-frame::after{content:'';position:absolute;inset:7px;border:2px solid currentColor;opacity:.72}.mini-frame i{font-style:normal;font-size:24px}.mini-sakura{background:#fbdde3;color:#b84b75}.mini-tokyo{background:linear-gradient(125deg,#20234c,#814b89);color:#78e2e2}.mini-matsuri{background:repeating-linear-gradient(90deg,#ac343c 0 22px,#f0c160 22px 25px);color:#fff8c1}.mini-zen{background:#e6e4d7;color:#53675b}.filter-options{display:flex;flex-wrap:wrap;gap:9px}.chip{font-size:11px;background:#fff;border:1px solid var(--line);color:var(--muted);padding:11px 13px;border-radius:100px}.chip.selected{background:var(--red);border-color:var(--red);color:white}.format-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.format-choice{border:1px solid var(--line);background:white;border-radius:6px;display:flex;text-align:left;align-items:center;gap:11px;padding:11px 10px;min-height:85px}.format-choice.selected{padding:10px 9px}.format-choice strong{font-size:11px;letter-spacing:.03em}.format-choice small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}.format-symbol{display:grid;place-items:center;background:#fae1e0;border-radius:3px;min-width:35px;color:var(--red);line-height:.69;font-size:16px;padding:11px 5px}.format-single{font-size:38px}.panel-footer{background:#fff0ec;margin-top:29px;display:flex;align-items:center;padding:15px;gap:13px}.panel-footer>span{color:var(--red);font-size:23px}.panel-footer p{margin:0;font-size:12px;line-height:1.6;color:var(--muted)}.panel-footer strong{color:var(--ink)}.result-head{margin-bottom:16px}.result-subtitle{color:var(--muted);font-size:14px}.result-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,.9fr);gap:64px;align-items:center;max-width:940px;margin:25px auto 70px}.result-display{display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#ffede6,#f7e8ed);border:1px solid #f3d8d2;min-height:350px;padding:35px;box-shadow:var(--shadow);border-radius:8px}.result-display canvas{width:auto;max-width:100%;max-height:65vh;display:block;box-shadow:0 18px 30px #52333239}.result-controls h3{font-size:clamp(42px,5vw,65px);margin:16px 0 20px}.result-controls>p{color:var(--muted);line-height:1.8;font-size:15px;max-width:320px}.result-stamp{color:var(--red);border:1px solid var(--red);display:inline-flex;align-items:center;gap:14px;padding:9px 15px;font-size:15px;transform:rotate(-3deg)}.btn-wide{display:flex;width:min(100%,340px);margin:14px 0}.save-help{font-size:12px!important;line-height:1.6!important;margin:16px 0}.privacy-note{border-top:1px solid var(--line);padding-top:18px;margin-top:26px;color:#a1857d;font-size:11px;max-width:340px;line-height:1.7}
@media(max-width:1000px){.hero-grid{gap:25px}.hero-art{min-height:480px}.studio-grid{gap:22px}.customize-panel{padding:22px 17px}.frame-options{gap:5px}.frame-option{font-size:10px}.format-options{grid-template-columns:1fr}.result-grid{gap:36px}}
@media(max-width:700px){.page-shell{padding:0 18px}.site-header{height:77px}.logo{font-size:14px}.logo-stamp{width:34px;height:34px;font-size:21px}.header-side{font-size:8px;letter-spacing:.07em}.hero-grid{grid-template-columns:1fr;gap:22px;padding:40px 0 20px}.hero-copy{padding:0}.hero-copy h1{font-size:clamp(50px,11vw,74px);margin:20px 0 15px}.hero-description{font-size:14px;margin:17px 0 24px}.hero-art{min-height:320px;height:400px;border-width:7px}.feature-ribbon{margin-top:28px;flex-wrap:wrap;padding:16px 5px;justify-content:center;font-size:9px}.feature-ribbon>span{white-space:nowrap}.feature-ribbon b{margin-left:4px}.site-footer{font-size:8px;line-height:1.8}.section-head{margin:25px 0 20px}.section-head h2{font-size:45px}.studio-grid{grid-template-columns:1fr;gap:20px}.camera-viewport{border-width:6px}.camera-actions{flex-wrap:wrap;gap:10px}.capture-progress{order:3;width:100%;margin-top:5px}.capture-btn{min-width:0;flex:1}.customize-panel{padding:24px 19px}.frame-options{gap:8px}.frame-option{font-size:11px}.mini-frame{max-height:108px}.format-options{grid-template-columns:1fr 1fr}.result-grid{grid-template-columns:1fr;gap:30px}.result-display{padding:20px;min-height:300px}.result-display canvas{max-height:60vh}.result-controls{display:flex;flex-direction:column;align-items:center;text-align:center}.result-controls h3{font-size:55px}.result-controls>p{margin-top:0}.result-grid{margin-bottom:50px}}
@media(max-width:390px){.header-side{display:none}.frame-options{gap:5px}.frame-option{font-size:9px}.format-options{grid-template-columns:1fr}.camera-frame-top{font-size:9px}.camera-frame-bottom{font-size:8px}.logo{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition:none!important}}

.filter-note{font-size:11px;line-height:1.55;color:#947e83;margin:10px 0 0}

/* EDITORIAL PHOTO STUDIO — minimal, intentional details, no synthetic portraits */
:root{--bg:#faf6f2;--paper:#fffefd;--ink:#2f2930;--red:#a4435b;--red-dark:#7f2d48;--pink:#eed0d6;--blush:#f8ecec;--line:#e9e1df;--muted:#74696f;--shadow:0 22px 60px rgba(60,35,50,.09)}
body{background:linear-gradient(145deg,#faf7f4,#fff9f9 65%,#f9f3ef)}
.grain{opacity:.09}
.site-header{height:86px}
.logo{font-weight:800;letter-spacing:.12em}
.hero-art{background:#eadfda;border:7px solid #fff;border-radius:44% 44% 3px 3px;box-shadow:0 18px 70px #7f536321}
.hero-grid{gap:65px}
.hero-description{max-width:420px}
.eyebrow{letter-spacing:.22em}
.btn{letter-spacing:.08em}
.btn-primary{box-shadow:none;border-radius:5px}
.btn-primary:hover:not(:disabled){box-shadow:0 9px 22px #91394c2b}
.customize-panel{border-radius:8px;box-shadow:0 14px 30px #503a3510}
.panel-header span:last-child{font-size:19px}
.camera-viewport{box-shadow:0 16px 45px rgba(39,29,35,.13)}
.face-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;transform:scaleX(-1)}
.camera-viewport[data-camera=environment] .face-overlay{transform:none}
.tracking-status{font-size:10px;letter-spacing:.09em;color:#956176;min-height:16px;margin-top:11px;text-align:right;font-weight:750}
.filter-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.chip{display:flex;align-items:center;gap:10px;text-align:left;border-radius:6px;min-height:62px;padding:9px 11px;background:#fffdfb;border:1px solid #e9e1e0;font-weight:750;font-size:12px;letter-spacing:.01em;color:var(--ink);box-shadow:none}
.chip:hover:not(:disabled){border-color:#dca5b0;background:#fff8f8}
.chip.selected{background:#fbf0f1;color:#70324b;border:1.5px solid #b46479;box-shadow:inset 0 0 0 1px #f3d7dc}
.chip .filter-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;background:#f6eff0;border-radius:50%;color:#ad6073;font-size:22px;font-family:Georgia,serif;font-weight:400;line-height:1}
.chip.selected .filter-icon{background:#eeced6;color:#75374c}
.chip small{display:block;font-size:10px;font-weight:450;color:#97868a;line-height:1.5;letter-spacing:0;margin-top:2px}
.chip.selected small{color:#966d7a}
.filter-note{font-size:11px;line-height:1.65;color:#8e7a83;margin:13px 0 0}
.frame-option{background:#fffdfc}
.frame-option.selected,.format-choice.selected{background:#fff6f6}
.panel-footer{background:#fbf3f3;border-radius:5px}
@media(max-width:700px){.hero-grid{gap:22px}.filter-options{grid-template-columns:repeat(2,minmax(0,1fr))}.chip{min-height:59px;padding:8px}.chip .filter-icon{width:26px;height:26px;flex-basis:26px;font-size:19px}}
@media(max-width:370px){.filter-options{grid-template-columns:1fr 1fr}.chip{gap:5px;padding:7px 5px;font-size:11px}.chip small{font-size:9px}}

/* PREMIUM AR EDITION — typography, petals, beauty touch-up */
.hero-copy h1,.section-head h2,.result-controls h3{font-family:"Shippori Mincho",Georgia,"Times New Roman",serif;letter-spacing:-.02em}
.japanese-text,.logo-stamp,.result-stamp,.art-caption span:first-child{font-family:"Zen Maru Gothic","Shippori Mincho",serif}
.hero-copy h1{font-size:clamp(50px,5.6vw,82px)}

/* falling sakura petals over the hero art */
.petal-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.petal-field i{position:absolute;top:-9%;display:block;width:15px;height:12px;background:radial-gradient(circle at 32% 30%,#ffe3ea,#f5a7bc);border-radius:62% 38% 55% 45%/55% 62% 38% 45%;opacity:.92;animation:petalfall 9s linear infinite;box-shadow:0 1px 2px rgba(173,82,109,.18)}
.petal-field i:nth-child(1){left:8%;animation-duration:8.5s;animation-delay:0s;transform:scale(.8)}
.petal-field i:nth-child(2){left:22%;animation-duration:11s;animation-delay:2.4s}
.petal-field i:nth-child(3){left:36%;animation-duration:9.4s;animation-delay:5.2s;transform:scale(.65)}
.petal-field i:nth-child(4){left:50%;animation-duration:12.5s;animation-delay:1.1s;transform:scale(1.15)}
.petal-field i:nth-child(5){left:63%;animation-duration:8.8s;animation-delay:3.8s;transform:scale(.72)}
.petal-field i:nth-child(6){left:75%;animation-duration:10.6s;animation-delay:6.3s}
.petal-field i:nth-child(7){left:86%;animation-duration:9.8s;animation-delay:.6s;transform:scale(.9)}
.petal-field i:nth-child(8){left:14%;animation-duration:13s;animation-delay:7.6s;transform:scale(1.05)}
@keyframes petalfall{0%{transform:translate3d(0,-30px,0) rotate(0deg)}25%{transform:translate3d(26px,160px,0) rotate(95deg)}50%{transform:translate3d(-6px,330px,0) rotate(180deg)}75%{transform:translate3d(30px,490px,0) rotate(265deg)}100%{transform:translate3d(8px,660px,0) rotate(360deg)}}

/* beauty touch-up control */
.beauty-set{margin-top:25px}
.beauty-presets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%}
.pill{font-size:11px;font-weight:800;letter-spacing:.07em;min-height:50px;padding:8px 6px;border-radius:12px;border:1px solid var(--line);background:#fffdfb;color:var(--muted);transition:background .15s ease,border-color .15s ease}
.pill:hover:not(:disabled){border-color:#dca5b0;background:#fff8f8}
.pill.selected{background:#fbf0f1;color:#70324b;border-color:#b46479;box-shadow:inset 0 0 0 1.5px #f3d7dc}
.beauty-fine{display:flex;align-items:center;gap:10px;margin-top:12px}
.beauty-fine label{font-size:9px;font-weight:800;letter-spacing:.12em;color:#a08f89;white-space:nowrap}
.beauty-value{font-size:13px;font-weight:800;letter-spacing:.06em;color:var(--red);min-width:34px;text-align:right}
#beautySlider{flex:1;width:100%;accent-color:var(--red);height:28px;margin:0;cursor:pointer}

/* EASY MODE — big friendly controls + cuter themes */
.frame-options{grid-template-columns:repeat(3,1fr);gap:10px}
.frame-option{font-size:12px;line-height:1.35;padding:9px 6px 11px;border-radius:9px}
.frame-option.selected{padding:8px 5px 10px;border-radius:9px}
.mini-frame{max-height:104px;border-radius:5px}
.mini-frame i{font-size:24px;font-style:normal}
.mini-simple{background:#fdfbf8;color:#a79488}
.chip{min-height:70px;font-size:13px;border-radius:9px}
.chip .filter-icon{width:34px;height:34px;flex:0 0 34px;font-size:17px;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif}
.chip small{font-size:10.5px}
.capture-btn{min-height:58px;font-size:13px}
.format-choice{min-height:92px;border-radius:9px}
.format-choice strong{font-size:12px}
.format-choice small{font-size:10.5px}
.camera-tip strong{color:var(--red)}
.choice-set legend{font-size:12px;letter-spacing:.14em}
/* Just Normal — clean live frame, effects still on */
.theme-simple{--frame-border:#ffffff;--frame-panel:rgba(255,252,248,.88);--frame-text:#7a675f}
.camera-viewport.theme-simple .camera-frame::before,.camera-viewport.theme-simple .camera-frame::after{content:'♡'}

/* fixed decorations on the live frame itself — original SVG artwork, consistent on every device */
.frame-decor{position:absolute;inset:0;pointer-events:none;
--d-blossom:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3CradialGradient id='g' cx='.5' cy='.35' r='.75'%3E%3Cstop offset='0' stop-color='%23ffdfe9'/%3E%3Cstop offset='1' stop-color='%23f084a6'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg fill='url(%23g)'%3E%3Cellipse cx='32' cy='14' rx='9.5' ry='14'/%3E%3Cellipse cx='32' cy='14' rx='9.5' ry='14' transform='rotate(72 32 32)'/%3E%3Cellipse cx='32' cy='14' rx='9.5' ry='14' transform='rotate(144 32 32)'/%3E%3Cellipse cx='32' cy='14' rx='9.5' ry='14' transform='rotate(216 32 32)'/%3E%3Cellipse cx='32' cy='14' rx='9.5' ry='14' transform='rotate(288 32 32)'/%3E%3C/g%3E%3Ccircle cx='32' cy='32' r='5.5' fill='%23ffeab0'/%3E%3Cg fill='%23eda93f'%3E%3Ccircle cx='32' cy='23' r='1.4'/%3E%3Ccircle cx='40' cy='29' r='1.4'/%3E%3Ccircle cx='37' cy='39' r='1.4'/%3E%3Ccircle cx='27' cy='39' r='1.4'/%3E%3Ccircle cx='24' cy='29' r='1.4'/%3E%3C/g%3E%3C/svg%3E");
--d-whiteflower:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='%23fff6ee'%3E%3Cellipse cx='32' cy='16' rx='8.5' ry='13'/%3E%3Cellipse cx='32' cy='16' rx='8.5' ry='13' transform='rotate(72 32 32)'/%3E%3Cellipse cx='32' cy='16' rx='8.5' ry='13' transform='rotate(144 32 32)'/%3E%3Cellipse cx='32' cy='16' rx='8.5' ry='13' transform='rotate(216 32 32)'/%3E%3Cellipse cx='32' cy='16' rx='8.5' ry='13' transform='rotate(288 32 32)'/%3E%3C/g%3E%3Ccircle cx='32' cy='32' r='5' fill='%23f6cd84'/%3E%3C/svg%3E");
--d-petal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 40'%3E%3Cpath d='M16 2 C27 10 28 26 16 38 C4 26 5 10 16 2 Z' fill='%23f6b2c6'/%3E%3Cpath d='M16 8 C22 14 23 24 16 32' fill='none' stroke='%23fbd3de' stroke-width='2'/%3E%3C/svg%3E");
--d-sparkgold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='19' fill='%23ffd977' opacity='.22'/%3E%3Cpath d='M24 2 C26.5 16 32 21.5 46 24 C32 26.5 26.5 32 24 46 C21.5 32 16 26.5 2 24 C16 21.5 21.5 16 24 2 Z' fill='%23ffe9ad'/%3E%3C/svg%3E");
--d-sparkcyan:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='19' fill='%2339dede' opacity='.3'/%3E%3Cpath d='M24 2 C26.5 16 32 21.5 46 24 C32 26.5 26.5 32 24 46 C21.5 32 16 26.5 2 24 C16 21.5 21.5 16 24 2 Z' fill='%23aef4f2'/%3E%3C/svg%3E");
--d-sparkpink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='19' fill='%23e86ad2' opacity='.3'/%3E%3Cpath d='M24 2 C26.5 16 32 21.5 46 24 C32 26.5 26.5 32 24 46 C21.5 32 16 26.5 2 24 C16 21.5 21.5 16 24 2 Z' fill='%23f9c4ec'/%3E%3C/svg%3E");
--d-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='25' r='19' fill='%23ffd36e' opacity='.2'/%3E%3Cpath d='M24 4 L29.2 17.6 L43.8 18.2 L32.4 27.4 L36.4 41.4 L24 33.2 L11.6 41.4 L15.6 27.4 L4.2 18.2 L18.8 17.6 Z' fill='%23ffd36e' stroke='%23ffe9a8' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E");
--d-moon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cdefs%3E%3Cmask id='m'%3E%3Crect width='64' height='64' fill='white'/%3E%3Ccircle cx='43' cy='21' r='19' fill='black'/%3E%3C/mask%3E%3C/defs%3E%3Ccircle cx='32' cy='32' r='27' fill='%23ffd36e' opacity='.16'/%3E%3Ccircle cx='30' cy='32' r='21' fill='%23ffe08a' mask='url(%23m)'/%3E%3C/svg%3E");
--d-lantern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 78'%3E%3Cellipse cx='24' cy='42' rx='23' ry='27' fill='%23ffb34d' opacity='.18'/%3E%3Cline x1='24' y1='0' x2='24' y2='11' stroke='%235a3038' stroke-width='2.4'/%3E%3Crect x='16' y='11' width='16' height='6' rx='2' fill='%235a3038'/%3E%3Cdefs%3E%3ClinearGradient id='l' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23f06a52'/%3E%3Cstop offset='1' stop-color='%23b3242c'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cellipse cx='24' cy='41' rx='19' ry='24' fill='url(%23l)'/%3E%3Cg fill='none' stroke='%23ffd98f' stroke-width='1.5' opacity='.75'%3E%3Cellipse cx='24' cy='41' rx='7' ry='24'/%3E%3Cellipse cx='24' cy='41' rx='13' ry='24'/%3E%3Cellipse cx='24' cy='41' rx='19' ry='24'/%3E%3C/g%3E%3Crect x='17' y='63' width='14' height='5' rx='2' fill='%235a3038'/%3E%3Cline x1='24' y1='68' x2='24' y2='74' stroke='%23f3c552' stroke-width='2'/%3E%3Ccircle cx='24' cy='75.5' r='2.4' fill='%23f3c552'/%3E%3C/svg%3E");
--d-firework:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cg stroke='%23ffd977' stroke-width='2.4' stroke-linecap='round'%3E%3Cline x1='36' y1='28' x2='52' y2='28'/%3E%3Cline x1='33.7' y1='33.7' x2='45' y2='45'/%3E%3Cline x1='28' y1='36' x2='28' y2='52'/%3E%3Cline x1='22.3' y1='33.7' x2='11' y2='45'/%3E%3Cline x1='20' y1='28' x2='4' y2='28'/%3E%3Cline x1='22.3' y1='22.3' x2='11' y2='11'/%3E%3Cline x1='28' y1='20' x2='28' y2='4'/%3E%3Cline x1='33.7' y1='22.3' x2='45' y2='11'/%3E%3C/g%3E%3Ccircle cx='28' cy='28' r='3.2' fill='%23fff3cd'/%3E%3Cg fill='%23ffe9ad'%3E%3Ccircle cx='46' cy='36' r='1.8'/%3E%3Ccircle cx='10' cy='36' r='1.8'/%3E%3Ccircle cx='36' cy='10' r='1.8'/%3E%3Ccircle cx='19' cy='47' r='1.8'/%3E%3C/g%3E%3C/svg%3E");
--d-fireworkor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cg stroke='%23ff9e66' stroke-width='2.4' stroke-linecap='round'%3E%3Cline x1='36' y1='28' x2='52' y2='28'/%3E%3Cline x1='33.7' y1='33.7' x2='45' y2='45'/%3E%3Cline x1='28' y1='36' x2='28' y2='52'/%3E%3Cline x1='22.3' y1='33.7' x2='11' y2='45'/%3E%3Cline x1='20' y1='28' x2='4' y2='28'/%3E%3Cline x1='22.3' y1='22.3' x2='11' y2='11'/%3E%3Cline x1='28' y1='20' x2='28' y2='4'/%3E%3Cline x1='33.7' y1='22.3' x2='45' y2='11'/%3E%3C/g%3E%3Ccircle cx='28' cy='28' r='3.2' fill='%23ffe2c9'/%3E%3Cg fill='%23ffc79b'%3E%3Ccircle cx='46' cy='36' r='1.8'/%3E%3Ccircle cx='10' cy='36' r='1.8'/%3E%3Ccircle cx='36' cy='10' r='1.8'/%3E%3Ccircle cx='19' cy='47' r='1.8'/%3E%3C/g%3E%3C/svg%3E");
--d-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M8 40 C8 18 26 6 42 6 C42 26 26 40 8 40 Z' fill='%239cc48f'/%3E%3Cpath d='M12 36 C20 28 30 18 38 10' fill='none' stroke='%2363945c' stroke-width='1.8'/%3E%3C/svg%3E");
--d-enso:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cpath d='M44 15 A19 19 0 1 0 47 31' fill='none' stroke='%23e9e2cf' stroke-width='3.4' stroke-linecap='round' opacity='.8'/%3E%3C/svg%3E");
--d-heart:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M24 41 C11 31.5 5.5 22 10 13.8 C13.6 7.4 22 8.4 24 15 C26 8.4 34.4 7.4 38 13.8 C42.5 22 37 31.5 24 41 Z' fill='none' stroke='%23dcb5ba' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.fd{position:absolute;background-repeat:no-repeat;background-position:center;background-size:contain;filter:drop-shadow(0 2px 5px rgba(40,20,30,.28))}
.fd-tl{top:40px;left:8px;width:34px;height:34px;transform:rotate(-16deg)}
.fd-tr{top:40px;right:8px;width:40px;height:40px;transform:rotate(13deg)}
.fd-bl{bottom:36px;left:10px;width:28px;height:28px;transform:rotate(11deg)}
.fd-br{bottom:36px;right:10px;width:38px;height:38px;transform:rotate(-13deg)}
.fd-ml{top:33%;left:6px;width:22px;height:22px;transform:rotate(-9deg)}
.fd-mr{top:29%;right:6px;width:24px;height:24px;transform:rotate(10deg)}
.fd-ml2{top:58%;left:9px;width:16px;height:16px;transform:rotate(14deg)}
.fd-mr2{top:62%;right:9px;width:17px;height:17px;transform:rotate(-8deg)}
.fd-a1{top:74px;left:40px;width:14px;height:14px}
.fd-a2{bottom:72px;right:44px;width:15px;height:15px}
.fd-a3{top:84px;right:40px;width:13px;height:13px}
.fd-a4{bottom:78px;left:42px;width:13px;height:13px}
/* Sakura Bloom — blossom garden */
.theme-sakura .fd-tl,.theme-sakura .fd-tr,.theme-sakura .fd-bl,.theme-sakura .fd-br,.theme-sakura .fd-mr{background-image:var(--d-blossom)}
.theme-sakura .fd-ml,.theme-sakura .fd-mr2{background-image:var(--d-whiteflower)}
.theme-sakura .fd-ml2,.theme-sakura .fd-a1{background-image:var(--d-petal);width:13px;height:17px}
.theme-sakura .fd-ml2{width:15px;height:19px}
.theme-sakura .fd-a2,.theme-sakura .fd-a3{background-image:var(--d-sparkgold)}
.theme-sakura .fd-a4{background-image:var(--d-petal);width:11px;height:14px;transform:rotate(40deg)}
.theme-sakura .camera-frame{outline:2px dashed rgba(255,222,234,.5);outline-offset:-8px}
/* Tokyo Night — neon sky */
.theme-tokyo .fd-tr{background-image:var(--d-moon)}
.theme-tokyo .fd-tl,.theme-tokyo .fd-mr,.theme-tokyo .fd-a1,.theme-tokyo .fd-a4{background-image:var(--d-sparkcyan)}
.theme-tokyo .fd-bl,.theme-tokyo .fd-ml,.theme-tokyo .fd-mr2,.theme-tokyo .fd-a3{background-image:var(--d-star)}
.theme-tokyo .fd-br,.theme-tokyo .fd-ml2,.theme-tokyo .fd-a2{background-image:var(--d-sparkpink)}
.theme-tokyo .camera-frame{box-shadow:inset 0 0 22px rgba(115,232,232,.28),inset 0 0 6px rgba(216,135,238,.3)}
/* Matsuri — festival night */
.theme-matsuri .fd-tl{background-image:var(--d-lantern);width:32px;height:52px;top:33px;transform:rotate(-4deg)}
.theme-matsuri .fd-tr{background-image:var(--d-lantern);width:27px;height:44px;top:33px;transform:rotate(5deg)}
.theme-matsuri .fd-mr{background-image:var(--d-lantern);width:17px;height:28px}
.theme-matsuri .fd-ml{background-image:var(--d-firework)}
.theme-matsuri .fd-bl{background-image:var(--d-fireworkor);width:30px;height:30px}
.theme-matsuri .fd-br{background-image:var(--d-firework)}
.theme-matsuri .fd-ml2,.theme-matsuri .fd-mr2,.theme-matsuri .fd-a1,.theme-matsuri .fd-a2,.theme-matsuri .fd-a4{background-image:var(--d-sparkgold)}
.theme-matsuri .fd-a3{background-image:var(--d-star)}
.theme-matsuri .camera-frame{outline:2px solid rgba(255,221,153,.55);outline-offset:-7px}
/* Zen Calm — quiet garden */
.theme-zen .fd-tl{background-image:var(--d-leaf);transform:rotate(-24deg)}
.theme-zen .fd-tr{background-image:var(--d-leaf);width:22px;height:22px;transform:rotate(140deg);opacity:.9}
.theme-zen .fd-bl{background-image:var(--d-enso);width:24px;height:24px;opacity:.8}
.theme-zen .fd-br{background-image:var(--d-leaf);width:32px;height:32px;transform:rotate(36deg)}
.theme-zen .fd-mr2{background-image:var(--d-enso);opacity:.5}
/* Just Normal — barely-there hearts */
.theme-simple .fd-a1,.theme-simple .fd-a2{background-image:var(--d-heart)}
@media(max-width:700px){
.fd-tl{top:36px;width:27px;height:27px}.fd-tr{top:36px;width:32px;height:32px}
.fd-bl{bottom:32px;width:22px;height:22px}.fd-br{bottom:32px;width:30px;height:30px}
.fd-ml{width:17px;height:17px}.fd-mr{width:19px;height:19px}
.fd-ml2{width:12px;height:12px}.fd-mr2{width:13px;height:13px}
.fd-a1{top:62px;left:32px;width:11px;height:11px}.fd-a2{bottom:60px;right:34px;width:12px;height:12px}
.fd-a3{top:70px;right:32px;width:10px;height:10px}.fd-a4{bottom:64px;left:34px;width:10px;height:10px}
.theme-sakura .fd-ml2{width:12px;height:15px}.theme-sakura .fd-a1{width:10px;height:13px}.theme-sakura .fd-a4{width:9px;height:11px}
.theme-matsuri .fd-tl{width:25px;height:41px;top:30px}.theme-matsuri .fd-tr{width:21px;height:34px;top:30px}.theme-matsuri .fd-mr{width:14px;height:23px}
.theme-zen .fd-tr{width:17px;height:17px}.theme-zen .fd-bl{width:19px;height:19px}
}
/* pinned pickers exist only on phones; desktop uses the side panel */
.pocket-bars{display:none}

/* 0.5x / 1x zoom toggle */
.zoom-toggle{display:inline-flex;border:1px solid var(--line);border-radius:100px;background:#fffdfb;overflow:hidden;flex:0 0 auto}
.zoom-btn{border:0;background:transparent;padding:0 13px;font-size:11px;font-weight:800;letter-spacing:.02em;color:var(--muted);min-height:44px}
.zoom-btn.selected{background:var(--red);color:#fff}
.camera-viewport[data-layout=grid][data-zoom=fill]{aspect-ratio:1/1;max-height:600px}
.format-grid{font-size:15px;line-height:1.2;letter-spacing:1px}
.camera-viewport{margin-left:auto;margin-right:auto}
/* calmer frames: decorations live in the four corners only */
.fd-ml,.fd-mr,.fd-ml2,.fd-mr2,.fd-a1,.fd-a2,.fd-a3,.fd-a4{display:none}
.camera-viewport[data-zoom=wide] video{object-fit:contain;background:#17131a}
.camera-viewport.theme-sakura[data-zoom=wide] video{background:#fde8e9}
.camera-viewport.theme-tokyo[data-zoom=wide] video{background:#24264e}
.camera-viewport.theme-matsuri[data-zoom=wide] video{background:#ad3c42}
.camera-viewport.theme-zen[data-zoom=wide] video{background:#eae7db}
.camera-viewport.theme-simple[data-zoom=wide] video{background:#fffdf9}

/* Film 35mm live look: vignette + light leak + animated grain + date stamp */
.film-layer{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;
 background:radial-gradient(ellipse at 93% 6%,rgba(255,140,60,.26),rgba(255,90,60,.1) 38%,transparent 62%),radial-gradient(ellipse at center,transparent 54%,rgba(30,18,8,.33) 100%)}
.film-layer::before{content:'';position:absolute;inset:-60%;opacity:.14;animation:filmgrain .4s steps(3) infinite;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes filmgrain{0%{transform:translate(0,0)}33%{transform:translate(-5%,4%)}66%{transform:translate(4%,-5%)}100%{transform:translate(-3%,5%)}}
.film-date{position:absolute;right:5%;bottom:12%;font-family:"Courier New",monospace;font-weight:700;color:#ffb061;text-shadow:0 0 8px rgba(255,120,30,.95);font-size:clamp(14px,2.6vw,21px);letter-spacing:.08em}

/* quick effect bar shown between strip photos */
.quick-effects{position:absolute;left:50%;transform:translateX(-50%);bottom:52px;z-index:9;display:flex;flex-direction:column;align-items:center;gap:8px;background:rgba(32,22,28,.58);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:16px;padding:10px 12px;border:1px solid rgba(255,255,255,.35);max-width:94%}
.quick-label{font-size:10px;font-weight:900;letter-spacing:.13em;color:#fff;text-align:center}
.quick-row{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}
.quick-effect{width:46px;height:46px;border-radius:50%;border:2px solid rgba(255,255,255,.65);background:rgba(255,255,255,.93);font-size:21px;line-height:1;display:grid;place-items:center;padding:0;transition:transform .12s ease}
.quick-effect.selected{border-color:#ff9db8;box-shadow:0 0 0 3px rgba(255,157,184,.5);transform:scale(1.1)}
@media(max-width:700px){.quick-effects{bottom:46px;padding:8px 9px;gap:6px}.quick-effect{width:40px;height:40px;font-size:18px}.quick-label{font-size:9px}}

/* MOBILE BOOTH MODE — camera + TAKE button stay pinned; options are swipe rows below */
@media(max-width:700px){
  .section-head{margin:12px 0 10px}
  .section-head h2{font-size:28px}
  .studio-grid{display:block}
  .customize-panel{margin-top:10px}
  .camera-column{position:sticky;top:0;z-index:30;background:var(--bg);margin:0 -18px;padding:6px 18px 10px;box-shadow:0 10px 14px -12px rgba(60,35,50,.35)}
  .camera-tip{display:none}
  .tracking-status{margin-top:7px;min-height:14px}
  .camera-actions{margin-top:8px;gap:8px}
  .capture-progress{margin-top:2px}
  /* single/grid previews capped so the pinned block still leaves room below */
  .camera-viewport[data-layout=single][data-zoom=fill]{height:46vh;width:calc(46vh * .75);max-width:100%;margin-left:auto;margin-right:auto;max-height:none}
  .camera-viewport[data-layout=grid][data-zoom=fill]{height:min(44vh,calc(100vw - 36px));width:min(44vh,calc(100vw - 36px));max-width:100%;margin-left:auto;margin-right:auto;max-height:none}
  /* pinned pickers: theme dots + effect carousel right under the camera */
  .pocket-bars{display:block;margin-top:8px}
  .pocket-row{display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;scrollbar-width:none;padding:2px 2px 4px}
  .pocket-row::-webkit-scrollbar{display:none}
  .pocket-themes{justify-content:center}
  .pocket-theme{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(116,74,80,.25);font-size:15px;font-weight:700;display:grid;place-items:center;padding:0;line-height:1}
  .pocket-theme.selected{box-shadow:0 0 0 2.5px var(--red);border-color:#fff}
  .pt-sakura{background:#fbdde3;color:#b84b75}
  .pt-tokyo{background:linear-gradient(135deg,#20234c,#6d4687);color:#8ee6e6}
  .pt-matsuri{background:#ad3c42;color:#ffe9b0}
  .pt-zen{background:#e6e4d7;color:#53675b}
  .pt-simple{background:#fffdf9;color:#a08f85}
  .pocket-effects{margin-top:2px}
  .pocket-effect{flex:0 0 auto;width:52px;border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:3px}
  .pocket-effect i{width:42px;height:42px;border-radius:50%;background:#fff;border:1.5px solid var(--line);font-style:normal;font-size:19px;display:grid;place-items:center;line-height:1;box-shadow:0 2px 6px rgba(90,55,65,.08)}
  .pocket-effect span{font-size:9px;font-weight:800;letter-spacing:.04em;color:var(--muted)}
  .pocket-effect.selected i{border-color:#b46479;box-shadow:0 0 0 2.5px rgba(255,157,184,.55)}
  .pocket-effect.selected span{color:var(--red)}
  /* options become horizontal swipe rows */
  .customize-panel{padding:14px 14px 18px}
  .choice-set{margin-top:16px;min-width:0;min-inline-size:0}
  /* the pinned pickers replace these on phones — no duplicates below */
  .theme-set,.effect-set{display:none}
  .ln{display:none}
  .frame-options{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
  .frame-options::-webkit-scrollbar{display:none}
  .frame-option{flex:0 0 31%;min-width:102px}
  .mini-frame{max-height:84px}
  .filter-options{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
  .filter-options::-webkit-scrollbar{display:none}
  .chip{flex:0 0 auto;min-height:50px;padding:8px 14px 8px 9px;white-space:nowrap}
  .chip small{display:none}
  .chip .filter-icon{width:28px;height:28px;flex:0 0 28px;font-size:15px}
  .panel-footer{margin-top:18px}
}
@media(max-width:700px){
  .frame-options{grid-template-columns:repeat(3,1fr);gap:8px}
  .frame-option{font-size:11px}
  .mini-frame{max-height:96px}
  .capture-btn{min-height:62px}
  .btn-wide{min-height:56px}
  .pill{min-height:54px}
}

/* CHRISTMAS EDITION — palette, snow, festive live decorations */
:root{--bg:#fbf6f1;--red:#b3242c;--red-dark:#8c1a22;--pink:#f3cfcf;--blush:#fdeaea;--line:#eadfdb}
body{background:linear-gradient(145deg,#fbf6f1,#fff8f6 65%,#f4f0ef)}
.mini-zen{background:#e6eef3;color:#5e86a0}
.mini-frame i{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:26px}
.pt-zen{background:#e6eef3;color:#5e86a0}
.pocket-theme{font-size:16px}
.camera-frame::before,.camera-frame::after{content:'❅'}
.camera-viewport.theme-tokyo .camera-frame::before,.camera-viewport.theme-tokyo .camera-frame::after{content:'✦'}
.camera-viewport.theme-matsuri .camera-frame::before,.camera-viewport.theme-matsuri .camera-frame::after{content:'✦'}
.camera-viewport.theme-zen .camera-frame::before,.camera-viewport.theme-zen .camera-frame::after{content:'❄'}
.camera-viewport.theme-simple .camera-frame::before,.camera-viewport.theme-simple .camera-frame::after{content:'♡'}
.camera-viewport.theme-zen[data-zoom=wide] video{background:#e9f1f5}
.camera-viewport.theme-sakura[data-zoom=wide] video{background:#ffe9e9}
.petal-field i{width:11px;height:11px;background:radial-gradient(circle at 35% 35%,#ffffff,#dfe9f2);border-radius:50%;box-shadow:0 0 7px rgba(255,255,255,.8);opacity:.95}
.frame-decor{
--d-blossom:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 64'%3E%3Cpath d='M13 60 L13 24 A9 9 0 0 1 31 24 L31 30' fill='none' stroke='%23e8453c' stroke-width='11' stroke-linecap='round'/%3E%3Cpath d='M13 60 L13 24 A9 9 0 0 1 31 24 L31 30' fill='none' stroke='%23ffffff' stroke-width='11' stroke-linecap='round' stroke-dasharray='9 9'/%3E%3C/svg%3E");
--d-whiteflower:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='20' fill='%23bfe0ff' opacity='.3'/%3E%3Cg stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round'%3E%3Cline x1='24' y1='5' x2='24' y2='43'/%3E%3Cline x1='5' y1='24' x2='43' y2='24'/%3E%3Cline x1='10' y1='10' x2='38' y2='38'/%3E%3Cline x1='38' y1='10' x2='10' y2='38'/%3E%3C/g%3E%3Ccircle cx='24' cy='24' r='3' fill='%23ffffff'/%3E%3C/svg%3E");
--d-petal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath d='M24 41 C11 31.5 5.5 22 10 13.8 C13.6 7.4 22 8.4 24 15 C26 8.4 34.4 7.4 38 13.8 C42.5 22 37 31.5 24 41 Z' fill='%23e8604a'/%3E%3C/svg%3E");
--d-sparkpink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='20' fill='%23bfe0ff' opacity='.3'/%3E%3Cg stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round'%3E%3Cline x1='24' y1='5' x2='24' y2='43'/%3E%3Cline x1='5' y1='24' x2='43' y2='24'/%3E%3Cline x1='10' y1='10' x2='38' y2='38'/%3E%3Cline x1='38' y1='10' x2='10' y2='38'/%3E%3C/g%3E%3C/svg%3E");
--d-lantern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 78'%3E%3Ccircle cx='24' cy='46' r='22' fill='%23ffb34d' opacity='.25'/%3E%3Cline x1='24' y1='0' x2='24' y2='14' stroke='%233c4446' stroke-width='3'/%3E%3Crect x='17' y='14' width='14' height='9' rx='2' fill='%235a4632'/%3E%3Cpath d='M24 23 C38 30 37 48 24 62 C11 48 10 30 24 23 Z' fill='%23e8604a'/%3E%3Cellipse cx='17' cy='36' rx='4' ry='7' fill='%23ffffff' opacity='.5' transform='rotate(-20 17 36)'/%3E%3C/svg%3E");
--d-firework:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Ccircle cx='24' cy='24' r='20' fill='%23ffd977' opacity='.25'/%3E%3Cg stroke='%23ffe9ad' stroke-width='3' stroke-linecap='round'%3E%3Cline x1='24' y1='5' x2='24' y2='43'/%3E%3Cline x1='5' y1='24' x2='43' y2='24'/%3E%3Cline x1='10' y1='10' x2='38' y2='38'/%3E%3Cline x1='38' y1='10' x2='10' y2='38'/%3E%3C/g%3E%3C/svg%3E");
--d-fireworkor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 64'%3E%3Cpath d='M13 60 L13 24 A9 9 0 0 1 31 24 L31 30' fill='none' stroke='%23e8453c' stroke-width='11' stroke-linecap='round'/%3E%3Cpath d='M13 60 L13 24 A9 9 0 0 1 31 24 L31 30' fill='none' stroke='%23ffffff' stroke-width='11' stroke-linecap='round' stroke-dasharray='9 9'/%3E%3C/svg%3E");
--d-leaf:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 52'%3E%3Cpath d='M8 30 Q14 12 30 14 Q27 20 31 24 Q27 29 31 34 Q14 40 8 30 Z' fill='%233c7a4e'/%3E%3Cpath d='M56 30 Q50 12 34 14 Q37 20 33 24 Q37 29 33 34 Q50 40 56 30 Z' fill='%232f6b4f'/%3E%3Ccircle cx='32' cy='28' r='5' fill='%23d23232'/%3E%3Ccircle cx='26' cy='33' r='4.4' fill='%23e8453c'/%3E%3Ccircle cx='38' cy='33' r='4.4' fill='%23c22f2f'/%3E%3C/svg%3E");
--d-enso:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg stroke='%23cfe2f0' stroke-width='2.6' stroke-linecap='round'%3E%3Cline x1='24' y1='6' x2='24' y2='42'/%3E%3Cline x1='6' y1='24' x2='42' y2='24'/%3E%3Cline x1='11' y1='11' x2='37' y2='37'/%3E%3Cline x1='37' y1='11' x2='11' y2='37'/%3E%3C/g%3E%3C/svg%3E")}
.theme-sakura .fd-ml2,.theme-sakura .fd-a1,.theme-sakura .fd-a4{width:14px;height:14px;transform:none}
.theme-sakura .camera-frame{outline-color:rgba(255,224,224,.6)}
