@charset "UTF-8";
.visual-room[data-step="claim"] .room-grid{grid-template-columns:minmax(0,620px);justify-content:center}
.avatar-crop{position:absolute;inset:0;border-radius:50%;overflow:hidden}
.avatar-crop img{position:absolute;max-width:none;object-fit:fill}
.visual-room .avatar{position:relative;overflow:hidden}
.live-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#765885;white-space:nowrap}
.live-status i{width:7px;height:7px;border-radius:50%;background:#a596af}
.live-status.connected i{background:#528268;box-shadow:0 0 0 4px #52826816}
.room-tabs{display:flex;gap:8px;margin:0 0 16px}
.room-tab{display:flex;align-items:center;justify-content:center;gap:7px;min-height:46px;flex:1;padding:9px 12px;border:1px solid #e2d6ea;border-radius:18px;background:#fff;color:#765885;font-size:13px;font-weight:650}
.room-tab.active{background:#3d294e;border-color:#3d294e;color:#fff}
.tab-count{font-size:11px;opacity:.85}
.ai-connection-note{margin:9px 0 3px;text-align:center;font-size:11px;color:#796384}
.member.is-editing{border-color:#a68ac0;background:#f4edfb}
.photo-overlay .editing{animation:none}
.photo-overlay .editing>circle:first-child{stroke-dasharray:8 4}
.region-spinner{animation:spin .9s linear infinite;transform-box:fill-box;transform-origin:center}
@media(max-width:350px){.room-tab{font-size:12px;padding:9px 7px;gap:5px}.live-status{font-size:11px}}
@media(prefers-reduced-motion:reduce){.region-spinner{animation:none}}
:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:#3d294e;background:#fff6eb;font-synthesis:none;--ink:#3d294e;--muted:#796384;--line:#e9dfee;--accent:#c8b1f1;--paper:#fff;--radius:24px}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.43}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #8656ad;outline-offset:4px}button{border:0}svg{vertical-align:middle}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h1{letter-spacing:-.055em;font-weight:760}h2{letter-spacing:-.04em;font-size:25px}h3{font-size:17px;letter-spacing:-.03em}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.6}.eyebrow{font-size:12px;font-weight:750;letter-spacing:.08em;color:#796384}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:9px;font-size:23px;letter-spacing:-1.3px;font-weight:800;white-space:nowrap}.brand img{width:44px;height:31px;object-fit:contain;flex-shrink:0}.site-header{max-width:1176px;margin:auto;padding:27px 28px;display:flex;justify-content:space-between;align-items:center}.header-note{font-size:12px;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:30px;padding:7px 11px;font-size:11px;font-weight:650;white-space:nowrap}.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:#9874bd}.btn{min-height:48px;padding:13px 19px;border-radius:14px;font-weight:680;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);transition:transform .15s,background .15s}.btn:not(:disabled):hover{background:#baa0e8;transform:translateY(-1px)}.btn.dark{background:var(--ink);color:#fff}.btn.dark:not(:disabled):hover{background:#58386d}.btn.secondary{background:#fff;border:1px solid var(--line)}.btn.secondary:not(:disabled):hover{background:#f6effb}.btn.full{width:100%}.btn.compact{min-height:40px;font-size:12px;padding:9px 13px;border-radius:12px}.icon-btn{width:44px;height:44px;border-radius:13px;background:transparent;display:grid;place-items:center}.icon-btn:hover{background:#f0e5fc}.text-btn{min-height:44px;background:none;color:#795796;text-decoration:underline;text-underline-offset:4px;font-size:12px;padding:8px 0}.home{max-width:1120px;margin:26px auto 0;padding:0 28px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px;padding:24px 0 55px}.hero-copy{padding-bottom:15px}.hero h1{font-size:clamp(36px,4.5vw,57px);line-height:1.27;margin:21px 0}.hero-description{font-size:16px;line-height:1.9;color:#796384;margin-bottom:29px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-footnote{font-size:11px;line-height:1.7;margin-top:17px;color:#86708c}.hero-art{position:relative;padding:15px;transform:rotate(2deg);background:#fff;box-shadow:0 18px 60px #3d294e12;border-radius:25px}.hero-art>img{border-radius:16px;aspect-ratio:1.14;object-fit:cover}.hero-art .art-note{padding:18px 5px 5px;display:flex;justify-content:space-between;font-size:12px;letter-spacing:-.3px}.art-note b{font-weight:650}.float-label{position:absolute;display:flex;align-items:center;gap:6px;border-radius:10px;background:var(--accent);box-shadow:0 3px 12px #3d294e0b;padding:10px 14px;font-size:12px;font-weight:700;transform:rotate(-2deg)}.float-label.first{top:16%;left:-18px}.float-label.second{right:-14px;bottom:25%;background:#ffbf97}.float-label svg{width:14px}.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;border-top:1px solid var(--line);padding:29px 0 35px}.flow-item{display:flex;gap:12px;align-items:flex-start}.step-num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f0e5fc;font-size:11px;font-weight:700;flex-shrink:0}.flow h3{font-size:13px;margin:3px 0 8px}.flow p{font-size:12px;color:var(--muted);line-height:1.7}.style-preview{padding:30px 0 40px}.style-preview h2{font-size:20px;margin-bottom:20px}.style-preview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.preview-tile{border-radius:17px;overflow:hidden;background:#fff;border:1px solid var(--line)}.preview-tile img{width:100%;aspect-ratio:1.35;object-fit:cover;object-position:center 35%}.preview-tile span{display:block;font-size:12px;text-align:center;padding:11px 2px}.page-footer{padding:22px 12px 35px;text-align:center;font-size:11px;color:#8c7793;line-height:1.8}.demo-banner{padding:11px 16px;background:#f0e5fc;border:1px solid #e3d6ef;border-radius:13px;font-size:12px;color:#796384;line-height:1.65;display:flex;gap:9px;align-items:flex-start}.demo-banner svg{flex-shrink:0;margin-top:2px}.room-shell{max-width:1120px;padding:0 28px;margin:2px auto}.room-heading{margin:23px 0 20px}.room-heading h1{font-size:27px;line-height:1.4;overflow-wrap:anywhere}.room-heading .small{margin-top:4px}.room-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:25px;align-items:start}.photo-card{background:#fff;padding:12px;border:1px solid var(--line);border-radius:23px}.photo-surface{position:relative;background:#f1eaf3;overflow:hidden;border-radius:15px;isolation:isolate;touch-action:manipulation;outline-offset:-4px}.photo-surface.selectable{cursor:crosshair}.photo-surface>img{width:100%;height:100%;object-fit:contain;pointer-events:none}.photo-surface>.image-loading{position:absolute;inset:0;display:grid;place-items:center;background:#f7f0fb}.photo-overlay{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.photo-overlay text{font-weight:700;font-size:24px;fill:#3d294e}.selection-help{position:absolute;left:50%;bottom:15px;transform:translateX(-50%);white-space:nowrap;background:#3d294ee6;color:white;padding:10px 15px;border-radius:50px;font-size:12px;pointer-events:none}.photo-toolbar{padding:9px 2px 0;gap:3px;display:flex;align-items:center}.photo-toolbar .history-button{display:inline-flex;justify-content:center;align-items:center;gap:5px;background:none;border-radius:10px;font-size:11px;min-height:43px;padding:7px 9px}.photo-toolbar .history-button:not(:disabled):hover{background:#f6effb}.version{margin-left:auto;font-size:11px;color:#8d7894;padding:0 8px;white-space:nowrap}.presence{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0 7px}.member{display:flex;align-items:center;gap:6px;border:1px solid var(--line);padding:6px 9px 6px 6px;background:white;border-radius:30px;max-width:100%;font-size:11px}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:25px;height:25px;border-radius:50%;background:var(--member-color,#c8b1f1);color:#3d294e;font-size:10px;font-weight:750}.member-name{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:5px;height:5px;background:#b4a1be;border-radius:50%}.status-dot.online{background:#9874bd}.editing{animation:blink 1.8s ease-in-out infinite}.photo-caption{color:#86708c;font-size:11px;text-align:center;line-height:1.8;margin-top:13px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.panel .intro{font-size:12px;line-height:1.75;color:#796384}.style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0 16px}.style-button{position:relative;overflow:hidden;background:#fffaf5;border:2px solid transparent;border-radius:15px;padding:0;text-align:left}.style-button img{width:100%;height:100px;object-fit:cover;object-position:center 35%;transition:transform .2s}.style-button:not(:disabled):hover img{transform:scale(1.035)}.style-button.selected{border-color:#9670bb;background:#f0e5fc}.style-button .style-name{display:block;font-size:12px;font-weight:650;padding:11px}.style-check{position:absolute;right:8px;top:8px;width:21px;height:21px;border-radius:50%;background:var(--accent);display:grid;place-items:center}.quota{text-align:center;color:#796384;font-size:11px;margin:10px 0 0;line-height:1.7}.claim-panel{padding:20px 0 6px}.claim-icon{width:48px;height:48px;background:#f0e5fc;border-radius:16px;display:grid;place-items:center;margin-bottom:15px}.claim-panel p{line-height:1.85;font-size:13px;color:#796384;margin:10px 0 18px}.range-row{display:flex;align-items:center;gap:10px;font-size:11px;margin:20px 0}.range-row input{width:100%;min-width:0;accent-color:#9874bd;min-height:34px}.consent-panel{margin-top:20px;padding-top:21px;border-top:1px solid var(--line)}.consent-count{font-size:11px;background:#f0e5fc;color:#796384;padding:5px 9px;border-radius:20px;white-space:nowrap}.consent-panel .intro{margin:9px 0 15px}.consent-button{background:#f8f2fc;width:100%;font-size:13px;min-height:49px;border:1px solid #dac7ea;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:8px}.consent-button.agreed{background:#eadcf7;border-color:#c8b1f1}.save-area{margin-top:11px}.save-area p{text-align:center;font-size:11px;line-height:1.7;color:#86708c;margin-top:9px}.room-footer{margin:19px 0 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;color:#86708c}.activity{color:#86708c;font-size:11px;margin-top:22px;line-height:1.9}.activity li{padding:2px 0}.activity ul{padding-left:14px;margin:8px 0}.join-wrap{max-width:430px;padding:50px 23px;margin:auto;text-align:center}.join-art{width:180px;height:145px;object-fit:cover;border-radius:22px;margin:0 auto 28px;transform:rotate(-4deg);box-shadow:0 12px 35px #3d294e12}.join-wrap h1{font-size:29px;margin:12px 0}.join-wrap .intro{font-size:14px;color:#796384;line-height:1.9;margin-bottom:25px}.join-wrap .panel{text-align:left}.field{margin:17px 0}.field label{display:block;font-size:12px;font-weight:650;margin-bottom:8px}.field input:not([type=file]){width:100%;min-height:48px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fffaf5;color:var(--ink);font-size:14px}.upload-zone{position:relative;display:grid;place-items:center;min-height:110px;border:1px dashed #c8b1d9;border-radius:14px;background:#fcf7ff;font-size:12px;text-align:center;line-height:1.8;padding:17px;color:#796384;overflow:hidden}.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-zone img{max-height:150px;border-radius:8px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#3d294e65;backdrop-filter:blur(4px);padding:20px}.modal{position:relative;background:#fff;border-radius:24px;padding:28px;max-width:420px;width:100%;max-height:92dvh;overflow:auto;box-shadow:0 20px 70px #3d294e28}.modal-close{position:absolute;top:14px;right:14px}.modal h2{margin:6px 35px 9px 0;font-size:24px}.modal>.intro{color:#796384;font-size:13px;line-height:1.8}.modal .demo-banner{margin-top:20px;font-size:11px}.auth-divider{font-size:11px;color:#8d7894;text-align:center;margin:18px 0}.oauth{display:grid;grid-template-columns:1fr 1fr;gap:9px}.oauth .btn{font-size:12px;min-height:43px}.toast{position:fixed;z-index:40;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,15px);background:#3d294ef2;color:#fff;padding:14px 19px;border-radius:15px;box-shadow:0 8px 30px #3d294e22;max-width:min(92vw,470px);width:max-content;font-size:12px;line-height:1.6;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.boot{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#796384;font-size:13px}.loader{display:inline-block;width:20px;height:20px;border:2px solid #c8b1f1;border-top-color:#795796;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.btn .loader{width:16px;height:16px}.error-state{max-width:450px;margin:100px auto;text-align:center;padding:20px;line-height:1.8}.error-state p{margin:12px 0 22px}.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}
.style-preview-grid{grid-template-columns:repeat(5,1fr)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.5}}
@media(min-width:1000px){.photo-column{position:sticky;top:24px}.style-button img{height:111px}}
@media(max-width:760px){.site-header{padding:20px}.header-note{display:none}.home{margin:0;padding:0 23px}.hero{grid-template-columns:1fr;gap:29px;padding:30px 0}.hero-copy{padding-bottom:0}.hero h1{font-size:42px;margin:18px 0}.hero-description{font-size:14px;margin-bottom:24px}.hero-actions .btn{padding:13px 15px;font-size:13px}.hero-art{max-width:450px;width:calc(100% - 14px);margin:0 auto;transform:rotate(1.5deg)}.hero-art>img{aspect-ratio:1.35}.float-label.first{left:-13px}.float-label.second{right:-12px}.flow{gap:16px;padding:26px 0}.flow-item{display:block}.step-num{margin-bottom:11px}.flow h3{font-size:12px}.flow p{font-size:11px;word-break:keep-all}.style-preview{padding-top:15px}.style-preview-grid{grid-template-columns:repeat(3,1fr);gap:9px}.preview-tile span{font-size:11px}.room-shell{padding:0 17px}.room-heading{margin:19px 0 17px}.room-heading h1{font-size:23px}.room-grid{display:block}.photo-card{padding:8px;border-radius:20px}.photo-caption{margin-top:10px}.presence{margin:13px 0 7px}.panel{padding:20px;margin-top:21px}.room-grid .panel{border-radius:21px}.style-grid{gap:10px;margin-top:17px}.style-button img{height:110px}.consent-panel{margin-top:20px}.photo-toolbar .history-button{font-size:10px;padding:6px 8px;gap:4px}.photo-toolbar .history-button svg{width:15px}.room-footer{font-size:10px;margin-bottom:20px}.room-footer .text-btn{font-size:11px}.demo-banner{font-size:11px;padding:10px 12px}.panel h3{font-size:17px}.panel .intro{font-size:12px}.activity{margin-top:17px}.claim-panel{padding-top:10px}.join-wrap{padding-top:25px}.modal{padding:24px}.modal .field{margin:15px 0}}
@media(max-width:350px){.site-header{padding:17px}.brand{font-size:21px}.brand img{width:29px;height:29px}.home{padding:0 19px}.hero h1{font-size:36px}.hero-actions{gap:8px}.hero-actions .btn{font-size:12px;padding:12px}.room-shell{padding:0 12px}.panel{padding:16px}.style-button img{height:94px}.photo-toolbar .history-button{padding:5px 5px}.version{padding-right:4px}.room-heading .btn{font-size:11px;padding:9px 11px}.pill{font-size:10px}.float-label{font-size:10px;padding:8px 11px}}
/* Keep mobile form inputs readable without automatic iOS zoom, and controls easy to tap. */
@media(max-width:760px){
  .field input:not([type=file]){font-size:16px}
  .btn.compact,.oauth .btn,.photo-toolbar .history-button{min-height:44px}
  .range-row input{min-height:44px}
  .page-footer,.room-footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}
}
/* Approved brand direction: sticker photo play, 2026-10-06. */
.sticker-home .sticker-hero{grid-template-areas:"intro art" "actions art";gap:0 65px;padding:30px 0 50px}
.sticker-home .hero-copy{grid-area:intro;align-self:end;padding:0}
.sticker-home .hero-actions{grid-area:actions;align-self:start}
.sticker-home .hero-footnote{flex-basis:100%;margin-top:7px}
.sticker-collage{grid-area:art;justify-self:end;position:relative;width:100%;max-width:440px;height:440px;background:#f0e5fc;border-radius:48% 48% 24px 24px}
.brand-photo{position:absolute;width:46%;padding:9px 9px 13px;background:#fffdf8;border-radius:5px;box-shadow:0 7px 22px #3d294e18;text-align:center}
.brand-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 25%;border-radius:3px}
.brand-photo span{display:block;font-size:13px;font-weight:650;margin-top:10px}
.brand-photo.first{top:45px;left:28px;transform:rotate(-12deg)}
.brand-photo.second{top:148px;right:23px;transform:rotate(11deg)}
.brand-sticker{position:absolute;color:var(--ink);background:#ffbf97;padding:10px 17px;border-radius:45%;box-shadow:0 0 0 4px #fffdf8;font-size:13px;font-weight:750}
.brand-sticker.top{top:37px;right:23px;transform:rotate(9deg)}
.brand-sticker.bottom{bottom:35px;left:30px;background:var(--accent);transform:rotate(-7deg)}
.collage-caption{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:11px;color:#796384}
.btn{border-radius:24px}
.btn.compact{border-radius:14px}
.photo-card{border-radius:15px;box-shadow:0 5px 20px #3d294e08}
.style-button,.preview-tile{border-radius:12px}
.style-button.selected{border-color:#9874bd}
.consent-button{border-radius:20px}
@media(max-width:760px){
  .sticker-home .sticker-hero{grid-template-areas:"intro" "art" "actions";gap:22px;padding:16px 0 34px}
  .sticker-home .hero-copy{text-align:center}
  .sticker-home .hero h1{font-size:42px;margin:17px 0 12px}
  .sticker-home .hero-description{margin:0;font-size:14px}
  .sticker-collage{justify-self:center;width:calc(100% - 6px);height:350px;max-width:350px}
  .brand-photo{padding:7px 7px 10px}
  .brand-photo.first{top:36px;left:20px}
  .brand-photo.second{top:113px;right:17px}
  .brand-photo span{font-size:12px;margin-top:8px}
  .brand-sticker{font-size:12px;padding:8px 14px}
  .brand-sticker.top{top:28px;right:17px}
  .brand-sticker.bottom{bottom:31px;left:22px}
  .sticker-home .hero-actions{display:flex;flex-direction:column;text-align:center;width:100%;gap:9px}
  .sticker-home .hero-actions .btn{width:100%;min-height:50px;font-size:14px}
  .sticker-home .hero-footnote{margin-top:5px}
}
@media(max-width:350px){
  .sticker-home .hero h1{font-size:37px}
  .sticker-collage{height:315px}
  .brand-photo.first{left:16px}
  .brand-photo.second{right:13px;top:108px}
}
/* One photo creates a room; keep creation and invitation focused on one action. */
.quick-upload{min-height:216px;margin-top:25px;gap:8px;align-content:center;border:2px dashed #c8b1f1;border-radius:20px;background:#f8f2ff;cursor:pointer}
.quick-upload:focus-within{outline:3px solid #8656ad;outline-offset:4px}
.upload-symbol{display:grid;place-items:center;width:62px;height:62px;border-radius:22px;background:#e9dcfa;color:var(--ink);margin-bottom:6px}
.upload-title{font-size:17px;font-weight:700;color:var(--ink)}
.create-error{margin-top:18px;font-size:13px;line-height:1.6;color:#9b3d52}
.create-loading{display:flex;align-items:center;justify-content:center;gap:12px;min-height:190px}
.create-loading h2{margin:0;font-size:20px}
.invite-ready{display:grid;place-items:center;width:52px;height:52px;border-radius:19px;background:#eadcf7;margin:7px 0 19px}
.invite-title{font-size:13px;color:var(--muted);margin:8px 0 20px;overflow-wrap:anywhere}
.invite-modal .field{margin-bottom:19px}
.invite-modal #continue-edit{margin-top:9px}
.room-heading>div{min-width:0}
.room-heading #invite{flex-shrink:0}
@media(max-width:350px){.room-heading h1{font-size:20px}.modal h2{font-size:22px}.quick-upload{min-height:190px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Direct actions, nearby feedback, and a single current task. */
.action-home{max-width:900px;margin:0 auto}
.action-home .action-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:16px 0 32px;gap:20px}
.action-hero h1{font-size:clamp(34px,5vw,49px);line-height:1.2;letter-spacing:-.055em}
.photo-entry{position:relative;isolation:isolate;display:block;flex-shrink:0;width:min(100%,430px);height:350px;padding:0;overflow:hidden;background:#f0e5fc;border:2px dashed #a68abd;border-radius:30px;transition:background .18s,border-color .18s,transform .18s}
.photo-entry:hover{background:#e9dcf9;border-color:#6e428f}
.photo-entry:active{transform:scale(.985)}
.entry-backdrop{position:absolute;inset:28px 36px 73px;border-radius:45%;background:#e4d3f7}
.entry-photo{position:absolute;display:block;width:38%;padding:7px;background:#fffdf8;border-radius:7px;box-shadow:0 8px 18px #3d294e1c;pointer-events:none}
.entry-photo img{display:block;width:100%;aspect-ratio:1/1.1;object-fit:cover;object-position:center 25%;border-radius:3px}
.entry-first{top:31px;left:37px;transform:rotate(-11deg)}
.entry-second{top:65px;right:32px;transform:rotate(10deg)}
.entry-add{position:absolute;z-index:2;left:50%;top:164px;display:grid;place-items:center;width:66px;height:66px;transform:translateX(-50%);border:5px solid #fff6eb;border-radius:50%;background:#ffbf97;color:#3d294e;box-shadow:0 4px 14px #3d294e16}
.entry-add svg{width:30px;height:30px}
.entry-label{position:absolute;left:18px;right:18px;bottom:37px;font-size:20px;font-weight:750;letter-spacing:-.04em;color:#3d294e}
.entry-example{position:absolute;left:18px;right:18px;bottom:13px;font-size:11px;color:#6d537d}
.sample-entry{display:flex;align-items:center;gap:12px;width:min(100%,430px);min-height:60px;text-align:left;background:#fffaf4;border:1px solid #e4d5e9;border-radius:17px;padding:8px 14px 8px 8px;font-size:13px;font-weight:650}
.sample-entry img{width:48px;height:40px;object-fit:cover;flex-shrink:0;border-radius:9px}
.sample-entry>svg{margin-left:auto;flex-shrink:0}
.sample-entry:hover{background:#f2e9fa}
.action-home .style-preview{padding:15px 0 24px}
.action-home .style-preview h2{font-size:18px}
.action-home .style-preview-grid{gap:9px}
.action-home .preview-tile span{font-size:11px;padding:9px 2px}
.action-home .demo-banner{max-width:520px;margin:0 auto}
.action-home .page-footer{padding-top:15px}
.header-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:12px;font-weight:700;color:#694b7c}.header-link:hover{background:#f7effc}.footer-support{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.support-page{width:min(100% - 40px,440px);margin:14px auto 0;padding-bottom:max(32px,env(safe-area-inset-bottom));text-align:center;word-break:keep-all;overflow-wrap:anywhere}
.support-intro{padding:7px 0 25px}.support-intro h1{margin:10px 0 13px;font-size:32px;line-height:1.28;letter-spacing:-.06em}.support-intro>p:last-child{color:#715d7d;font-size:14px;line-height:1.8}
.support-card{position:relative;overflow:hidden;padding:24px;border:1px solid #e0d1ed;border-radius:24px;background:#f1e7fb;text-align:left}
.support-card:after{position:absolute;content:"";width:125px;height:125px;border-radius:50%;right:-62px;top:-62px;background:#ffcfad99;pointer-events:none}.support-card>*{position:relative;z-index:1}
.support-kicker{color:#715d7d;font-size:12px;line-height:1.6;font-weight:600}.support-card h2{margin-top:6px;font-size:23px;line-height:1.4;letter-spacing:-.04em}
.support-copy{margin:8px 0 20px;color:#715d7d;font-size:14px;line-height:1.7}
.support-recipient{min-height:52px;padding:13px 15px}.support-recipient svg{flex-shrink:0;transform:rotate(-35deg)}
.support-operations{margin-top:16px;padding:24px;border:1px solid var(--line);border-radius:24px;background:#fff;text-align:left}
.support-budget-total{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.support-budget-total h2{font-size:16px;line-height:1.5;letter-spacing:-.03em}.support-budget-total strong{font-size:25px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.support-budget{margin-top:16px}.support-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:15px 16px;background:#faf7fc;border-radius:14px}.support-costs>div+div{padding-left:16px;border-left:1px solid var(--line)}.support-costs dt{font-size:12px;color:#715d7d}.support-costs dd{margin:6px 0 0;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.support-budget-note{margin-top:10px;color:#715d7d;font-size:12px;line-height:1.7}
.account-details{margin-top:21px;padding-top:20px;border-top:1px solid var(--line)}.account-details h3{margin-bottom:13px;font-size:14px;line-height:1.5}
.account-bank{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;color:#715d7d}.account-bank span{font-weight:600}.account-bank b{font-size:13px;font-weight:600}
.account-number{display:block;width:100%;min-width:0;margin:7px 0 14px;padding:5px 0;border:0;border-radius:4px;background:transparent;font-size:22px;font-weight:750;letter-spacing:.045em;color:#3d294e;font-variant-numeric:tabular-nums}
.copy-account{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:46px;padding:11px 14px;border:1px solid #d9c4e8;border-radius:15px;background:#fff;color:#533b64;font-size:13px;font-weight:700}.copy-account:not(:disabled):hover{background:#f6effb}
.account-feedback{margin-top:10px;color:#715d7d;font-size:12px;line-height:1.7;text-align:center}.account-feedback:empty{margin-top:0}
.support-records{margin-top:16px;border-bottom:1px solid #e2d4e8;text-align:left}.support-records summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:54px;padding:13px 4px;list-style:none;font-size:13px;font-weight:700;cursor:pointer}.support-records summary::-webkit-details-marker{display:none}.support-records summary svg{flex-shrink:0;color:#715d7d}.support-records[open] summary svg{transform:rotate(45deg)}.support-records summary:focus-visible{outline:3px solid #8656ad;outline-offset:4px;border-radius:5px}
.support-records-content{padding:0 4px 18px;font-size:13px;line-height:1.75}.support-records-content p+p{margin-top:6px;color:#715d7d;font-size:12px}
.support-note{margin:16px auto 0;color:#715d7d;font-size:12px;line-height:1.7;text-align:center}
@media(max-width:760px){.support-page{margin-top:0}.support-intro{padding-top:4px;padding-bottom:22px}.support-intro h1{font-size:30px}.support-intro>p:last-child{font-size:13px}.support-card,.support-operations{padding:21px 20px}}
@media(max-width:350px){.support-page{width:calc(100% - 32px)}.support-intro h1{font-size:28px}.support-card,.support-operations{padding:20px 17px}.support-budget-total strong{font-size:23px}.account-number{font-size:21px;letter-spacing:.02em}}
.visual-room .room-heading{margin:17px 0 15px}
.visual-room .room-heading h1{font-size:23px}
.room-steps{display:flex;align-items:center;gap:8px;margin:0 0 18px;max-width:550px}
.room-step{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:44px;flex:1;padding:8px 10px;border:1px solid #dccce7;border-radius:15px;background:#fff;color:#735982;font-size:12px;font-weight:650;white-space:nowrap}
.room-step.current{background:#3d294e;border-color:#3d294e;color:#fff;box-shadow:0 3px 10px #3d294e12}
.room-step.complete{background:#eadef8;border-color:#baa0d5;color:#3d294e}
.room-step:disabled,.room-step.disabled{opacity:1;background:#f7f0f5;color:#8a7793;border-color:#e7dce9;cursor:default}
.room-step.current:disabled{background:#3d294e;color:#fff;border-color:#3d294e}
.room-step svg{flex-shrink:0;width:17px;height:17px}
.step-connector{display:block;width:12px;height:2px;flex-shrink:0;background:#d8c6e3;border-radius:2px}
.visual-room .photo-surface.selectable{touch-action:none;cursor:grab}
.visual-room .photo-surface.selectable:active{cursor:grabbing}
.selection-target{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;color:#3d294e}
.target-ring{position:relative;display:grid;place-items:center;width:91px;height:91px;border:2px dashed #3d294e;border-radius:50%;background:#fff6ebde;box-shadow:0 0 0 6px #ffffff80}
.target-ring>svg{width:35px;height:35px;opacity:.85}
.selection-target i{position:absolute;right:-9px;bottom:-7px;display:grid;place-items:center;width:35px;height:35px;background:#ffbf97;border:3px solid #fff6eb;border-radius:50%;font-style:normal;animation:touch-cue 1.4s ease-in-out 3}
.selection-target i svg{width:20px;height:20px}
.selection-target>span:not(.target-ring){background:#3d294e;color:#fff;border-radius:18px;font-size:12px;font-weight:650;padding:7px 12px;white-space:nowrap}
.claim-controls{padding:12px 3px 3px}
.claim-controls .range-row{margin:0 0 10px;gap:12px;color:#6a507a;min-height:44px}
.claim-controls .range-row>svg{flex-shrink:0}
.claim-controls .range-row input{flex:1;min-height:44px;margin:0;cursor:ew-resize;accent-color:#8656ad}
.claim-controls .btn{min-height:48px}
.claim-lock-note{display:flex;align-items:center;justify-content:center;gap:5px;color:#6f587c;font-size:11px;line-height:1.5;margin-top:9px}
.claim-lock-note svg{flex-shrink:0;width:13px;height:13px}
.photo-processing{position:absolute;z-index:4;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#fff6ebe8;color:#3d294e;backdrop-filter:blur(3px);font-size:13px;font-weight:650;pointer-events:none}
.photo-processing .loader{width:24px;height:24px}
.visual-room .presence{align-items:center;margin:12px 0 0;gap:7px}
.presence-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px 12px;background:#fff6eb;border:1px dashed #9874ad;border-radius:24px;font-size:12px;font-weight:650;color:#67487c}
.presence-add:hover{background:#eee2fa}
.action-panel{min-width:0;scroll-margin-top:18px}
.action-panel h2{font-size:20px;line-height:1.4;letter-spacing:-.035em}
.action-panel .panel-title{align-items:center;margin-bottom:14px}
.quota-pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex-shrink:0;min-height:28px;padding:5px 9px;background:#f0e5fc;border:1px solid #e3d5ef;border-radius:18px;color:#654879;font-size:11px;white-space:nowrap}
.visual-room .style-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 13px}
.visual-room .style-button{min-width:0;min-height:44px;border-color:#eee4f2;background:#fffbf8}
.visual-room .style-button img{height:auto;aspect-ratio:1/1.07;object-fit:cover}
.visual-room .style-button .style-name{font-size:11px;line-height:1.3;padding:9px 5px;text-align:center;overflow-wrap:anywhere}
.visual-room .style-button.selected{border-color:#795197;background:#eadcf9}
.visual-room .style-check{top:5px;right:5px;width:22px;height:22px;background:#3d294e;color:#fff;border:2px solid #fff}
.visual-room #generate{margin-top:2px;min-height:48px}
.next-step{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;width:100%;background:transparent;color:#654679;border-radius:18px;font-size:13px;font-weight:650;margin-top:7px;padding:10px}
.next-step:hover{background:#f5edfc}
.review-count{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;background:#ede1f8;color:#654679;padding:6px 10px;border-radius:18px;font-size:12px;font-weight:650;white-space:nowrap}
.approval-portraits{display:flex;align-items:flex-start;justify-content:center;flex-wrap:wrap;gap:16px 14px;margin:24px 0 19px}
.approval-person{display:flex;flex-direction:column;align-items:center;position:relative;gap:7px;min-width:0;width:60px;font-size:11px;color:#705680;text-align:center}
.approval-person>span:last-child,.approval-person .approval-name{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.4}
.approval-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:52px;height:52px;background:var(--member-color,#eadcf7);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #dfcfe8;font-size:20px;font-weight:750;color:#3d294e}
.approval-badge{position:absolute;right:-5px;bottom:-3px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;border:2px solid #fff;background:#f2eaf7;color:#78588e}
.approval-badge svg{width:13px;height:13px}
.approval-person.approved .approval-avatar{box-shadow:0 0 0 2px #785398}
.approval-person.approved .approval-badge,.approval-badge.approved{background:#65417f;color:#fff}
.invite-person{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex-shrink:0;width:60px;min-height:78px;padding:0;background:transparent;font-size:11px;color:#67497b}
.invite-person>svg,.invite-person .approval-avatar{width:52px;height:52px;border:1px dashed #9874ad;border-radius:50%;padding:14px;background:#f9f2ff;box-shadow:none}
.invite-person:hover>svg,.invite-person:hover .approval-avatar{background:#eadcf9}
.approval-track{display:block;height:7px;border-radius:7px;overflow:hidden;background:#eee5f3;margin:0 0 18px}
.approval-track>span,.approval-track>i,.approval-track>div{display:block;height:100%;background:#9870b5;border-radius:7px;transition:width .25s}
.visual-room #download{margin-top:12px;min-height:48px}
.visual-room .consent-button{padding:12px 10px;min-height:50px;line-height:1.45}
.visual-room .consent-button.agreed{background:#e8daf6;border:1px solid #9671b2;color:#503362}
.visual-room .save-area p,.visual-room .review-note{font-size:11px;line-height:1.6;color:#705580;text-align:center;margin-top:9px}
.invite-photo{position:relative;display:grid;place-items:center;width:100%;height:122px;margin:5px 0 23px;border-radius:16px;background:#f0e5fc}
.invite-photo>img{width:100%;height:100%;object-fit:cover;object-position:center 42%;border-radius:16px}
.invite-photo-check{position:absolute;bottom:-13px;right:14px;display:grid;place-items:center;width:43px;height:43px;background:#ffbf97;border:4px solid #fff;border-radius:50%;color:#3d294e;box-shadow:0 3px 8px #3d294e12}
.invite-photo-check svg{width:20px;height:20px}
.invite-modal:has(.invite-photo) h2{margin-top:10px;font-size:23px}
@keyframes touch-cue{0%,100%{transform:scale(1)}45%{transform:scale(.86)}}
@media(min-width:761px){
  .action-home .action-hero{padding-top:20px;gap:22px}
  .action-home .style-preview{padding-top:22px}
  .visual-room .room-steps{margin-top:5px;margin-bottom:22px}
  .visual-room .action-panel{padding:22px}
}
@media(max-width:760px){
  .action-home{padding:0 20px}
  .action-home .action-hero{padding:8px 0 26px;gap:16px}
  .action-hero h1{font-size:37px;line-height:1.19}
  .photo-entry{height:301px;max-width:390px;border-radius:27px}
  .entry-backdrop{inset:20px 30px 69px}
  .entry-photo{width:39%;padding:6px}
  .entry-first{left:27px;top:25px}
  .entry-second{right:24px;top:50px}
  .entry-add{top:139px;width:60px;height:60px}
  .entry-label{bottom:32px;font-size:19px}
  .entry-example{bottom:11px}
  .sample-entry{min-height:58px;font-size:12px}
  .action-home .style-preview{padding:8px 0 24px}
  .visual-room .room-heading{margin:13px 0}
  .visual-room .room-heading h1{font-size:20px}
  .visual-room .room-heading .small{font-size:11px}
  .room-steps{gap:6px;margin-bottom:13px}
  .room-step{font-size:11px;padding:8px 7px;gap:5px;border-radius:13px}
  .step-connector{width:8px}
  .visual-room .photo-card{padding:8px;border-radius:18px}
  .visual-room .action-panel{margin-top:16px;padding:18px}
  .action-panel h2{font-size:19px}
  .visual-room .style-grid{gap:8px;margin-top:14px}
  .visual-room .style-button img{aspect-ratio:1/1.02}
  .visual-room .photo-toolbar .history-button{min-height:44px;font-size:11px;padding:5px 7px}
  .visual-room .version{font-size:10px;padding:0 4px}
  .visual-room .member{min-height:36px}
  .approval-portraits{gap:15px 13px}
  .visual-room .room-footer{margin-top:13px}
}
@media(max-width:350px){
  .action-home{padding:0 17px}
  .action-hero h1{font-size:33px}
  .action-home .action-hero{gap:14px;padding-top:7px}
  .photo-entry{height:270px;border-radius:25px}
  .entry-first{left:23px;top:23px}
  .entry-second{right:19px;top:44px}
  .entry-add{top:119px;width:56px;height:56px;border-width:4px}
  .entry-label{font-size:18px;bottom:31px}
  .entry-example{font-size:10px}
  .room-steps{gap:5px}
  .room-step{font-size:10px;padding:8px 5px;gap:4px}
  .room-step svg{width:15px;height:15px}
  .step-connector{width:6px}
  .visual-room .room-heading h1{font-size:18px}
  .visual-room .action-panel{padding:14px}
  .visual-room .style-grid{gap:6px}
  .visual-room .style-button .style-name{font-size:11px;padding:8px 3px}
  .visual-room .photo-toolbar .history-button{font-size:10px;padding:5px 5px}
  .target-ring{width:78px;height:78px}
  .approval-portraits{gap:15px 10px}
  .invite-photo{height:105px}
}
@media(prefers-reduced-motion:reduce){
  .selection-target i,.photo-processing .loader{animation:none}
  .photo-entry,.approval-track>span,.approval-track>i,.approval-track>div{transition:none}
}
/* Keep the editing frame stable; fit the photo and its overlay identically. */
.photo-surface{aspect-ratio:1/1}
.photo-surface>img{position:absolute;inset:0;object-position:center}
/* Direct person selection and compact shared style choices. */
.mask-tools button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;border-radius:11px;background:transparent;color:#705680;font-size:12px;font-weight:650}
.member-choice{display:inline-flex;align-items:center;gap:4px;color:#735582;font-size:10px;white-space:nowrap}
.member-choice img{width:23px;height:23px;object-fit:cover;border-radius:7px;border:1px solid #e5d8ee}
.visual-room .member{min-height:40px;flex-wrap:wrap;row-gap:4px}
.visual-room .member-name{max-width:120px}
.mask-tools{display:grid;grid-template-columns:1fr 1fr 1fr 44px;gap:5px;margin:0 0 10px}
.mask-tools button{background:#fbf7ff;border:1px solid #eadff1}
.mask-tools button[aria-pressed=true]{background:#eadcf9;border-color:#9870b5;color:#503362}
.selection-progress{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;max-width:95%;white-space:nowrap;padding:9px 13px;border-radius:18px;background:#fffefaeb;color:#503362;box-shadow:0 2px 8px #3d294e17;font-size:12px;pointer-events:none}
.selection-progress .loader{width:15px;height:15px}
.selection-error{font-size:12px;line-height:1.5;color:#8b3f48;margin:8px 2px 12px;word-break:keep-all}
/* One photo, from choosing a person through choosing a character. */
.inline-editor{max-width:620px;margin:0 auto}
.inline-editor .room-heading{gap:12px}
.inline-editor .room-heading h1{min-width:0;flex:1;font-size:20px;line-height:1.4;letter-spacing:-.04em}
.inline-editor #copy-link{flex-shrink:0;min-height:44px;font-size:12px;padding:10px 12px;gap:5px}
.room-rules{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:-5px 0 11px}
.room-rules span{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;padding:8px 6px;border-radius:11px;background:#f3ebf8;color:#705580;font-size:10px;font-weight:650;line-height:1.35;letter-spacing:-.03em;text-align:center;word-break:keep-all}
.room-rules svg{flex-shrink:0}
.inline-share{margin:0 0 12px}
.inline-share input{width:100%;min-height:44px;padding:10px 12px;border:1px solid #d7c4e5;border-radius:12px;background:#fff;color:#503362;font:inherit;font-size:12px}
.target-markers{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.person-locator{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-36px);gap:5px;color:#3d294e}
.locator-ring{display:grid;place-items:center;width:72px;height:72px;border:3px solid var(--locator-color);border-radius:50%;background:#ffffff12;box-shadow:0 0 0 2px #fff,0 2px 12px #3d294e30}
.locator-ring svg{opacity:.45;color:#fff;filter:drop-shadow(0 1px 2px #3d294e)}
.locator-name{max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:20px;padding:4px 9px;background:var(--locator-color);box-shadow:0 0 0 2px #fff;font-size:11px;font-weight:700}
.person-locator.mine .locator-name{color:#fff}
.person-locator.friend .locator-ring{border-style:dashed}
.selection-invitation{animation:invite-selection 1.6s ease-in-out 3}
@keyframes invite-selection{0%,100%{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.55;transform:translate(-50%,-50%) scale(.92)}}
.editor-controls{padding:12px 3px 2px;min-width:0}
.editor-controls #primary-action{min-height:50px}
.carousel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 1px 10px}
.carousel-heading h2{font-size:17px;line-height:1.4;letter-spacing:-.03em}
.style-track{display:flex;flex-wrap:nowrap;gap:8px;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#c9b0db transparent;padding:2px 2px 10px;margin:0 0 8px;user-select:none;touch-action:pan-x pan-y;cursor:grab}
.style-track:active{cursor:grabbing}
.inline-editor .style-track .style-button{flex:0 0 98px;min-width:0;scroll-margin:4px}
.inline-editor .style-track .style-button img{width:100%;height:auto;aspect-ratio:1/1;pointer-events:none}
.inline-editor .style-track .style-name{white-space:nowrap;padding:9px 3px;font-size:11px}
.inline-editor .photo-toolbar{margin:8px 0 0}
.inline-editor .ai-connection-note{font-size:10px;margin:8px 0 0;text-align:center;color:#796384}
.public-consent{margin-top:18px;border:1px solid #e2d3ec;border-radius:17px;background:#fffaf6;overflow:hidden}
.public-consent summary{display:flex;align-items:center;gap:8px;min-height:52px;padding:12px 15px;cursor:pointer;font-size:13px;font-weight:650;list-style:none}
.public-consent summary::-webkit-details-marker{display:none}
.public-consent summary>span{margin-left:auto;color:#765588;font-size:12px}
.public-consent summary:after{content:'';width:7px;height:7px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg);margin:-4px 2px 0 6px}
.public-consent[open] summary:after{transform:rotate(225deg);margin-top:4px}
.consent-content{padding:0 15px 15px}
.consent-content .approval-portraits{margin:12px 0 20px}
@media(max-width:760px){.inline-editor .room-heading h1{font-size:18px}.inline-editor .style-track .style-button{flex-basis:91px}}
@media(max-width:350px){.inline-editor .room-heading{gap:7px}.inline-editor .room-heading h1{font-size:16px}.inline-editor #copy-link{font-size:11px;padding:9px}.inline-editor .style-track .style-button{flex-basis:85px}}
@media(prefers-reduced-motion:reduce){.selection-invitation{animation:none}}
/* Participant profiles sit above the photo, with an optional choice below. */
.inline-editor .photo-presence{align-items:flex-start;gap:7px;margin:0 0 10px}
.photo-presence .member{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:5px;padding:6px 9px 6px 6px;border-radius:17px;min-height:54px;background:#fff;max-width:100%}
.member-profile{display:flex;align-items:center;gap:7px;min-height:40px}
.photo-presence .avatar{width:40px;height:40px;background:#fff;border:1px solid #eee6f2;box-shadow:0 0 0 1px var(--member-color);color:#796384}
.photo-presence .member-name{max-width:112px;font-size:12px;font-weight:600}
.member-status{display:inline-flex;align-items:center;flex-shrink:0;color:#795796}
.member-status:empty{display:none}
.editing-dot{width:6px;height:6px;border-radius:50%;background:#9670bb;animation:blink 1.8s ease-in-out infinite}
.photo-presence .member-choice{display:flex;align-items:center;gap:6px;min-height:24px;margin:0 1px 1px 4px;font-size:11px;white-space:nowrap}
.photo-presence .member-choice img{width:23px;height:23px;background:#fff}
.photo-presence .presence-add{width:54px;height:54px;flex-shrink:0;padding:0;border-radius:18px;background:#fff}
.avatar-crop{background:#fff}
.avatar-crop img{mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}
.approval-avatar{background:#fff}
.approval-face{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:#fff}
@media(max-width:350px){.photo-presence .member{padding-right:7px}.photo-presence .member-name{max-width:96px}}
.inline-editor .photo-presence{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#d9c9e4 transparent;padding:1px 1px 5px}
.photo-presence .member{flex-shrink:0}
/* Transform, then decide on the finished photo. */
.transform-status{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:174px;padding:17px 0;color:#503362}
.transform-orb{position:relative;display:grid;place-items:center;width:68px;height:68px;border:4px solid #eadcf9;border-radius:22px;background:#fff;box-shadow:0 0 0 7px #faf5ff;animation:transform-breathe 1.8s ease-in-out infinite}
.transform-orb>img{width:100%;height:100%;object-fit:cover;border-radius:17px}
.transform-orb>i{position:absolute;right:-12px;top:-10px;background:#ffbf97;border:3px solid #fff;border-radius:50%;padding:5px;display:grid;place-items:center}
.transform-status strong{font-size:16px;letter-spacing:-.03em}
.transform-dots{display:flex;gap:5px;height:8px}
.transform-dots i{display:block;width:5px;height:5px;background:#9870b5;border-radius:50%;animation:transform-dot 1.2s ease-in-out infinite}
.transform-dots i:nth-child(2){animation-delay:.15s}.transform-dots i:nth-child(3){animation-delay:.3s}
.transform-sheen{transform-box:fill-box;animation:transform-sweep 1.8s ease-in-out infinite}
.inline-editor .result-history{justify-content:center;gap:8px;padding:0;margin:0 0 12px}
.visual-room .result-history .history-button{min-width:88px;min-height:44px;background:#f6effb;font-size:13px}
.result-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 9px;color:#796384;font-size:11px}
.result-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:8px}
.result-actions .btn{min-height:50px;padding:11px 8px;font-size:13px;white-space:nowrap}
.result-wait{font-size:11px;text-align:center;color:#796384;margin:10px 2px 0;line-height:1.5}
.inline-editor .result-download{min-height:48px;margin-top:12px}
@keyframes transform-breathe{50%{transform:translateY(-3px) rotate(-3deg);box-shadow:0 0 0 10px #f7efff}}
@keyframes transform-dot{0%,80%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@keyframes transform-sweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@media(max-width:350px){.result-actions .btn{font-size:12px;gap:5px}}
@media(prefers-reduced-motion:reduce){.transform-orb,.transform-dots i,.transform-sheen{animation:none}.transform-sheen{opacity:.3}}
/* Light photo labels: one portrait, a name, and a separate style chip. */
.person-badges{position:absolute;inset:0;z-index:2;pointer-events:none;user-select:none}
.person-badge{position:absolute;display:flex;flex-direction:column;align-items:center;max-width:min(154px,calc(100% - 12px));color:#3d294e}
.person-badge-profile{display:flex;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:4px 10px 4px 4px;border-radius:24px;background:#fff;box-shadow:0 2px 9px #3021391a,0 0 0 1px #39294b08}
button.person-badge-profile{pointer-events:auto;min-height:44px;color:inherit;border:0;cursor:pointer;touch-action:manipulation}
button.person-badge-profile.is-holding-person{transform:scale(.97);box-shadow:0 0 0 3px #c9ade3,0 3px 12px #30213924}
button.person-badge-profile:hover,button.person-badge-profile[aria-expanded="true"]{box-shadow:0 0 0 2px #c9ade3,0 3px 12px #30213924}
button.person-badge-profile:focus-visible{outline:2px solid #795197;outline-offset:3px}
.person-badge:focus-within,.person-badge.profile-menu-open{z-index:5}
.person-badge .avatar{position:relative;width:28px;height:28px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--person-color);color:#796384;overflow:hidden}
.person-badge .avatar-crop{inset:2px}
.person-badge-profile strong{font-size:11px;line-height:1.35;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;letter-spacing:-.025em}
.person-badge-state{display:flex;flex-shrink:0;color:#795796}
.person-badge .member-choice{display:inline-flex;align-items:center;gap:4px;max-width:100%;margin:3px 0 0;padding:3px 7px;border-radius:20px;background:#f5edfff5;box-shadow:0 1px 4px #3021390d;color:#735883;font-size:9px;line-height:1.35;white-space:nowrap}
.person-badge .person-choice-action{pointer-events:auto;min-height:22px;border:0;cursor:pointer;font-weight:700;touch-action:manipulation}
.person-badge .person-choice-action:focus-visible{outline:2px solid #795197;outline-offset:2px}
.person-badge .kick-choice-action{background:#3d294e;color:#fff;box-shadow:0 3px 10px #3021392b}
.person-badge .kick-choice-action svg{color:#ffb38e}
.person-badge .kick-choice-action:hover{background:#513662}
.person-badge .reselect-choice-action{background:#eadcf7;color:#624478;box-shadow:0 2px 8px #3021391b}
.person-badge .reselect-choice-action:hover{background:#ddcaed}
.person-badge.is-below .person-badge-profile{order:2}
.person-badge.is-below .member-choice{order:1;margin:0 0 3px}
.person-badge .member-choice svg{flex-shrink:0;opacity:.7}
.person-badge .member-choice>span{overflow:hidden;text-overflow:ellipsis}
/* Style examples use one small card system; only the illustrated character changes. */
.action-home .style-preview-grid{gap:10px}
.action-home .preview-tile{position:relative;display:flex;flex-direction:column;min-width:0;padding:4px 4px 0;border:1px solid #e5d9ea;border-radius:14px;background:#fffdfb;box-shadow:0 3px 9px #3d294e0a;overflow:hidden}
.action-home .preview-tile:before{content:"";position:absolute;z-index:0;inset:0 0 auto;height:48%;background:#f3ebf8;opacity:1;pointer-events:none}
.action-home .preview-tile img{position:relative;z-index:1;width:100%;aspect-ratio:1/1;object-fit:contain;object-position:center;border:1px solid #ffffffb8;border-radius:10px;background:#f3ebf8;box-shadow:0 1px 5px #3d294e0b}
.action-home .preview-tile span{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:31px;padding:7px 2px 8px;color:#4f3b5d;font-size:11px;font-weight:700;letter-spacing:-.04em;line-height:1.2;text-align:center;white-space:nowrap}
.inline-editor .style-track .style-button{padding:4px 4px 0;border:1px solid #e5d9ea;border-radius:13px;background:#fffdfb;box-shadow:0 2px 7px #3d294e0a}
.inline-editor .style-track .style-button img{border:1px solid #ffffffb8;border-radius:9px;background:#f3ebf8;box-shadow:0 1px 4px #3d294e0b;object-fit:contain;object-position:center}
.inline-editor .style-track .style-button .style-name{display:flex;align-items:center;justify-content:center;min-height:31px;padding:7px 2px 8px;color:#4f3b5d;font-weight:700}
.inline-editor .style-track .style-button.selected{border-color:#795197;background:#f3eafa;box-shadow:0 0 0 2px #e5d4f1}
.members-trigger{min-height:44px;padding:8px 0 8px 12px;background:transparent;border-radius:14px}
.members-trigger:hover{color:#503362}
.members-sheet{padding:26px 22px 22px;border-radius:28px}
.members-sheet h2{font-size:21px;margin:8px 40px 20px 0}
.members-sheet h2>span{font-size:15px;color:#a08bac;margin-left:5px;font-weight:500}
.sheet-handle{display:none}
.members-list{list-style:none;padding:0;margin:0;max-height:45dvh;overflow-y:auto}
.manage-member{display:flex;align-items:center;gap:11px;padding:10px 0;min-height:64px;border-bottom:1px solid #f2ecf6}
.manage-member:last-child{border:0}
.manage-member .avatar{position:relative;overflow:hidden;width:40px;height:40px;background:#fff;border:1px solid #ece3f3;color:#a38daf}
.manage-member-name{flex:1;min-width:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.manage-member-name small{display:block;margin-top:3px;color:#9c88a7;font-size:10px;font-weight:400}
.member-remove{flex-shrink:0;min-height:44px;padding:9px 8px;font-size:11px;font-weight:500;border-radius:12px;background:transparent;color:#9c7480}
.member-remove:hover,.manage-member.is-selected .member-remove{background:#fff1ec;color:#a64f43}
.kick-confirm{margin-top:18px;padding:17px 15px 14px;background:#fff7f2;border:1px solid #f5e6dc;border-radius:18px}
.kick-confirm strong{display:block;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.kick-confirm p{margin-top:5px;font-size:11px;line-height:1.6;color:#9a7b7b}
.kick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.kick-actions .btn{font-size:12px;min-height:44px;padding:10px}
.kick-actions .remove-confirm{background:#7f4b59;color:#fff}
.kick-actions .remove-confirm:not(:disabled):hover{background:#693c48}
@media(max-width:600px){.members-backdrop{align-items:end;padding:12px}.members-sheet{max-width:none;padding-bottom:max(22px,env(safe-area-inset-bottom));border-radius:26px}.sheet-handle{display:block;width:30px;height:4px;margin:-14px auto 20px;border-radius:4px;background:#e9e0ef}.members-sheet .modal-close{top:24px}}
@media(max-width:350px){.person-badge{max-width:138px}.person-badge-profile{gap:5px;padding-right:8px}.person-badge-profile strong{font-size:10px}}

/* Ephemeral words float over the photo; the input survives room re-renders. */
.photo-chat{position:fixed;inset:0;z-index:8;pointer-events:none}
.photo-chat[hidden],.photo-chat [hidden]{display:none!important}
.photo-chat-launch{position:absolute;display:flex;align-items:center;gap:7px;min-height:44px;padding:10px 15px;border:1px solid #e7dbee;border-radius:24px;background:#ffffffed;color:#614376;font-size:12px;font-weight:700;box-shadow:0 3px 14px #3021391a;pointer-events:auto;touch-action:manipulation;backdrop-filter:blur(8px)}
.photo-chat-launch:not(:disabled):hover{background:#f5edff;transform:translateY(-1px)}
.photo-chat-composer{position:absolute;display:flex;align-items:center;gap:4px;padding:6px;border:1.5px solid #cbb2e0;border-radius:26px;background:#fff;box-shadow:0 5px 24px #30213926;pointer-events:auto}
.photo-chat-composer:focus-within{border-color:#9870b5;box-shadow:0 0 0 3px #cbb2e044,0 5px 24px #30213926}
.photo-chat-composer input{width:0;min-width:0;flex:1;min-height:38px;padding:7px 3px 7px 11px;border:0;border-radius:18px;background:transparent;color:#3d294e;font-size:16px;line-height:1.4;outline:none}
.photo-chat-composer input:focus-visible{outline:none}
.photo-chat-composer input::placeholder{color:#a58fae;font-size:12px}
.photo-chat-send{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#705080;color:#fff}
.photo-chat-send:hover{background:#4e345f}
.photo-chat-cancel{width:32px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:18px;background:transparent;color:#947e9f}
.photo-chat-cancel:hover{background:#f6effb}
.photo-chat-bubble{position:absolute;display:flex;flex-direction:column;gap:3px;width:max-content;max-width:220px;padding:10px 13px 11px;border:1px solid #eadcf4;border-radius:17px 17px 17px 5px;background:#fffdfb;color:#3d294e;box-shadow:0 4px 18px #30213920;font-size:13px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap;pointer-events:none;animation:chat-appear .18s ease-out}
.photo-chat-speaker{display:flex;align-items:center;gap:5px;color:#8d729c;font-size:9px;font-weight:650;line-height:1.3}
.photo-chat-speaker:before{content:'';width:5px;height:5px;flex-shrink:0;border-radius:50%;background:var(--chat-color,#9870b5)}
.photo-chat-text{display:block}
@keyframes chat-appear{from{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.photo-chat-bubble{animation:none}}
/* Kakao login contains only the start action and the policy link. */
.auth-modal{max-width:350px;padding:57px 24px 24px}.auth-modal .oauth{display:block}.auth-modal .kakao-login{width:100%;min-height:52px;border:0;background:#fee500;color:#191600;font-size:14px;font-weight:760}.auth-modal .kakao-login:not(:disabled):hover{background:#f4db00}.kakao-mark{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:#191600;color:#fee500;font-size:10px;font-weight:850}.auth-privacy-link{display:block;margin-top:18px;text-align:center;color:#806a89;font-size:11px;text-decoration:underline;text-underline-offset:4px}.privacy-page{width:min(100% - 40px,650px);margin:16px auto 50px}.privacy-card{padding:34px 29px;border:1px solid #e7d9ef;border-radius:28px;background:#fff;box-shadow:0 13px 36px #3d294e0d}.privacy-card h1{margin-top:9px;font-size:31px;letter-spacing:-.06em}.privacy-date{margin-top:10px;color:#8a748f;font-size:12px}.privacy-card section{margin-top:29px;padding-top:25px;border-top:1px solid #eee4f2}.privacy-card h2{font-size:17px}.privacy-card section p{margin-top:11px;color:#715d7d;font-size:13px;line-height:1.82;word-break:keep-all}@media(max-width:600px){.auth-modal{padding:55px 20px 21px}.privacy-page{width:calc(100% - 34px);margin-top:4px}.privacy-card{padding:30px 21px;border-radius:24px}.privacy-card h1{font-size:29px}.privacy-card section{margin-top:25px;padding-top:22px}.privacy-card section p{font-size:12px}}
