@font-face{font-family:Manrope;src:url('./assets/manrope.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
:root{font-family:Manrope,Arial,sans-serif;color:#fff;background:#000;color-scheme:dark;font-synthesis:none;-webkit-font-smoothing:antialiased;--tray-bottom:88px;--circle:88px;--side-circle:58px}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{min-height:100svh}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;color:inherit;cursor:pointer;border:0;padding:0;background:transparent}
button:disabled{cursor:default}
button:focus-visible,a:focus-visible{outline:2px solid #fff;outline-offset:5px}
[hidden]{display:none!important}
[data-icon]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
[data-icon] svg{display:block;width:24px;height:24px;stroke-width:1.7}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.camera-app{position:relative;width:100%;height:100svh;height:100dvh;max-width:540px;margin:0 auto;isolation:isolate;overflow:hidden;background:#000}
.viewfinder{position:absolute;inset:max(18px,env(safe-area-inset-top)) 0 calc(122px + env(safe-area-inset-bottom));border-radius:25px;background:#0b0b0b;overflow:hidden;isolation:isolate}
.camera-video{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center}
.camera-video.is-mirrored{transform:scaleX(-1)}
.preview-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0002,transparent 24%,transparent 58%,#0009);pointer-events:none}
.flash-status{position:absolute;top:35px;left:50%;transform:translateX(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;z-index:1;color:#fff}
.flash-status svg{width:31px;height:31px;stroke-width:2.15}
.camera-request{position:absolute;left:24px;right:24px;top:45%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;text-align:center;max-width:330px;margin:0 auto;color:#f3f3f3}
.request-icon{color:#858585;margin-bottom:16px}.request-icon svg{width:36px;height:36px;stroke-width:1.3}
.camera-request h1{font-size:17px;font-weight:600;line-height:1.4;margin:0 0 8px;letter-spacing:-.2px}
.camera-request p{font-size:12px;color:#a8a8a8;line-height:1.7;max-width:270px;margin:0}
.enable-button{margin-top:20px;padding:11px 21px;min-height:42px;border-radius:24px;background:#f4f4f4;color:#171717;font-size:12px;font-weight:700;transition:background .15s}
.enable-button:hover{background:#d7d7d7}.enable-button:disabled{opacity:.55}
.control-dock{position:absolute;bottom:calc(var(--tray-bottom) + env(safe-area-inset-bottom));left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:18px;z-index:2;pointer-events:none}
.effects-label{display:flex;align-items:center;gap:8px;min-height:37px;padding:6px 13px;border-radius:24px;background:#0006;color:#fff;font-size:15px;line-height:1.4;font-weight:500;user-select:none}
.effects-label svg{width:22px;height:22px;stroke-width:1.7}
.look-tray{position:relative;width:min(100% - 38px,340px);height:var(--circle);pointer-events:auto}
.look-selector{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;justify-items:center}
.look-choice{width:var(--side-circle);height:var(--side-circle);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:width .2s,height .2s;position:relative}
.look-choice[data-position=left]{grid-column:1;grid-row:1}.look-choice[data-position=center]{grid-column:2;grid-row:1}.look-choice[data-position=right]{grid-column:3;grid-row:1}
.look-choice.is-selected{width:calc(var(--circle) - 14px);height:calc(var(--circle) - 14px)}
.look-swatch{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;overflow:hidden;border:2px solid #000;box-shadow:inset 0 0 14px #0002;transition:transform .15s}
.look-choice:hover .look-swatch{transform:scale(1.055)}
.daylight-swatch{background:radial-gradient(circle at 30% 20%,#ffd798 0,transparent 45%),linear-gradient(140deg,#bb633d,#dba54b 52%,#714929);color:#fff0cf}
.daylight-swatch svg{width:26px;height:26px;stroke-width:1.4}
.rose-swatch{background:radial-gradient(ellipse at 25% 65%,#077744 0,transparent 50%),radial-gradient(ellipse at 80% 20%,#128b5a 0,transparent 44%),linear-gradient(145deg,#072b25,#004c39 55%,#153b21);color:#f37551}
.rose-swatch:before,.rose-swatch:after{content:'';position:absolute;width:36%;height:18%;border-radius:100% 0 100% 0;background:#1a8c4e80;transform:rotate(-38deg);left:14%;top:28%}
.rose-swatch:after{left:auto;top:auto;right:12%;bottom:26%;transform:rotate(30deg)}
.flower-symbol{position:relative;font-size:29px;line-height:1;z-index:1;text-shadow:0 1px 5px #0007}
.midnight-swatch{background:radial-gradient(ellipse at 85% 20%,#27a39c 0,transparent 48%),radial-gradient(ellipse at 10% 90%,#723c92 0,transparent 50%),linear-gradient(140deg,#183a75,#071623);color:#dff9ff}
.midnight-swatch svg{width:24px;height:24px;stroke-width:1.35}.swatch-star{position:absolute;right:9px;top:5px;font-size:16px;color:#d6f6ec}
.shutter-button{position:absolute;left:50%;top:0;transform:translateX(-50%);width:var(--circle);height:var(--circle);border:4px solid #fff;border-radius:50%;background:transparent;transition:border-color .15s,box-shadow .15s;z-index:1}
.shutter-button:hover:not(:disabled){box-shadow:0 0 0 3px #ffffff35}.shutter-button:active:not(:disabled){border-color:#bcbcbc}.shutter-button:disabled{border-color:#fff}
.bottom-controls{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));left:20px;right:20px;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:18px;z-index:2}
.icon-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#f5f5f5;transition:opacity .15s}
.icon-button:hover{opacity:.75}.flip-button:disabled{opacity:.45}
.gallery-thumbnail{position:relative;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:7px;overflow:hidden}.gallery-thumbnail svg{width:32px;height:32px;stroke-width:1.8}.gallery-thumbnail img{width:100%;height:100%;object-fit:cover}
.photo-count{position:absolute;right:-2px;top:-2px;min-width:15px;height:15px;border-radius:8px;background:#fff;color:#000;font-size:9px;font-weight:700;padding:1px 4px;line-height:13px}.gallery-button{position:relative}
.flip-button svg{width:34px;height:34px;stroke-width:2}
.current-look{height:50px;border-radius:30px;background:#242424;display:flex;align-items:center;justify-content:center;gap:3px;font-size:18px;font-weight:700;letter-spacing:-.5px;user-select:none}.name-sparkle{font-size:17px}
.capture-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.capture-flash.is-flashing{animation:shutter-flash .3s ease-out}
.gallery-modal{width:min(640px,calc(100% - 28px));max-height:85svh;overflow:auto;border:1px solid #333;border-radius:22px;background:#161616;color:#f5f5f5;padding:24px}
.gallery-modal::backdrop{background:#000b}.modal-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.modal-heading h2{font-size:20px;letter-spacing:-.4px;font-weight:600;margin:0}.modal-heading>.icon-button{margin:-8px -8px -8px 0}
.gallery-empty{padding:40px 0;text-align:center;color:#ababab}.gallery-empty svg{width:35px;height:35px;stroke-width:1.3}.gallery-empty p{font-size:13px;line-height:1.7;margin:16px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.photo-card{margin:0;min-width:0}.photo-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;border-radius:10px;background:#252525}.photo-card a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;font-size:11px;color:#ddd;margin-top:9px;padding:5px 0}.photo-card a svg{width:15px;height:15px;stroke-width:1.7}
.gallery-footnote{font-size:11px;line-height:1.7;color:#a0a0a0;margin:22px 0 0;text-align:center}
.toast{position:fixed;top:calc(20px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:11px 17px;border-radius:24px;background:#282828;color:#fff;font-size:12px;line-height:1.6;z-index:4;text-align:center;box-shadow:0 5px 25px #0005}
@keyframes shutter-flash{from{opacity:.5}to{opacity:0}}
@media(min-width:700px){.camera-app{max-width:520px}.viewfinder{inset:24px 0 126px;border-radius:28px}.bottom-controls{left:25px;right:25px;bottom:18px}.look-tray{width:360px}}
@media(max-width:350px){:root{--circle:80px;--side-circle:50px;--tray-bottom:80px}.bottom-controls{left:13px;right:13px;gap:12px;bottom:12px}.current-look{height:46px;font-size:16px}.control-dock{gap:13px}.viewfinder{bottom:110px}.camera-request{left:18px;right:18px}.camera-request h1{font-size:16px}.camera-request p{font-size:11px}}
@media(max-height:600px){:root{--circle:76px;--side-circle:49px;--tray-bottom:76px}.control-dock{gap:10px}.effects-label{font-size:13px;min-height:32px}.viewfinder{top:12px;bottom:100px}.flash-status{top:16px}.camera-request{top:45%}.request-icon{margin-bottom:10px}.request-icon svg{width:29px;height:29px}.camera-request h1{font-size:15px}.camera-request p{font-size:11px}.enable-button{margin-top:14px;padding:9px 18px;min-height:38px}.bottom-controls{bottom:12px}.current-look{height:46px}}
@media(orientation:landscape) and (max-height:500px){.camera-app{max-width:100%}.viewfinder{inset:12px 130px 12px 12px;border-radius:20px}.flash-status{top:12px}.control-dock{left:auto;right:5px;width:125px;top:14px;bottom:82px;gap:6px}.look-tray{width:110px;height:100%;min-height:195px}.look-selector{grid-template-columns:1fr;grid-template-rows:1fr 1fr 1fr}.look-choice[data-position=left]{grid-column:1;grid-row:1}.look-choice[data-position=center]{grid-column:1;grid-row:2}.look-choice[data-position=right]{grid-column:1;grid-row:3}.shutter-button{top:50%;transform:translate(-50%,-50%)}.bottom-controls{left:auto;right:15px;bottom:12px;width:105px;grid-template-columns:1fr 1fr;gap:6px}.current-look{grid-row:1;grid-column:1/3;height:31px;font-size:12px}.gallery-button{grid-row:2;grid-column:1;justify-self:center}.flip-button{grid-row:2;grid-column:2;justify-self:center}.effects-label{font-size:11px;padding:3px 8px;min-height:27px}.effects-label svg{width:16px;height:16px}}
@media(max-width:500px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.capture-flash{display:none}}
