:root{color:#3f3735;background:#fff8f6;font-family:Hiragino Sans,Yu Gothic,YuGothic,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;overflow-y:auto}button,input{font:inherit}.app-shell{position:relative;display:grid;min-height:100vh;min-height:100svh;place-items:center;background:radial-gradient(circle at 24% 18%,rgba(255,214,216,.85),transparent 28%),radial-gradient(circle at 86% 12%,rgba(255,241,196,.72),transparent 26%),linear-gradient(160deg,#fffafb,#f7fff6 48%,#fff1f0)}.stage{--status-row: clamp(136px, 24svh, 190px);position:relative;display:grid;width:min(100vw,480px);min-height:100svh;height:100vh;height:100dvh;padding:max(22px,env(safe-area-inset-top)) 22px calc(18px + env(safe-area-inset-bottom));grid-template-areas:"status" "content" "actions";grid-template-rows:var(--status-row) minmax(0,1fr) auto;isolation:isolate}.ambient-petals{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.ambient-petals span{position:absolute;width:var(--size, 12px);height:calc(var(--size, 12px) * 1.55);border-radius:80% 12% 80% 18%;background:linear-gradient(135deg,#fff,#ffc7cf 52%,#f7aebc);box-shadow:0 7px 16px #e2788c2e;transform-origin:50% 100%}.ambient-petals span{left:var(--x);top:-12vh;animation:drift var(--dur) linear infinite;animation-delay:var(--delay)}.upload-petal-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;overflow:visible;pointer-events:none;perspective:760px;transform-style:preserve-3d}.upload-petal{position:absolute;width:clamp(22px,7vw,36px);height:clamp(34px,11vw,56px);border-radius:80% 12% 80% 18%;border:1px solid rgba(255,255,255,.72);background:linear-gradient(145deg,#fff7f8,#f6b1bf 48%,#d87593);box-shadow:0 10px 22px #e2788c47,0 0 20px #ffa7b83d;transform:translate3d(-50%,-50%,var(--petal-depth, 0px)) rotate(var(--petal-rotation)) rotateY(var(--petal-tilt, 0deg)) scale(var(--petal-scale, 1));transform-origin:50% 100%;isolation:isolate;transform-style:preserve-3d;will-change:left,top,transform;transition:opacity .36s ease,filter .36s ease}.upload-petal:after{position:absolute;top:-9px;right:-9px;bottom:-9px;left:-9px;z-index:-1;border-radius:inherit;background:#ffb5c39e;content:"";filter:blur(9px);opacity:0;transition:opacity .36s ease}.upload-petal.is-rising{opacity:var(--petal-opacity, 1);filter:brightness(1.12) blur(var(--petal-blur, 0px)) drop-shadow(0 10px 16px rgba(226,120,140,.28))}.upload-petal.is-rising:after{opacity:.9}.status-area{z-index:3;display:grid;grid-area:status;place-items:center;justify-self:center;align-self:center;width:100%;min-height:100%;pointer-events:none}.app-brand{display:inline-flex;align-items:center;gap:10px;color:#665350;font-size:.92rem;font-weight:800;letter-spacing:.01em}.brand-mark{display:block;width:42px;height:42px;border-radius:11px;box-shadow:0 5px 12px #b8677b29}.app-name{white-space:nowrap}.progress-status{position:absolute;top:50%;left:50%;z-index:10;display:grid;width:min(100%,220px);justify-items:center;text-align:center;pointer-events:none;transform:translate(-50%,-50%)}.progress-ring-content{display:grid;justify-items:center;gap:12px}.progress-ring-wrap{position:relative;width:clamp(112px,30vw,132px);height:clamp(112px,30vw,132px)}.progress-ring{display:block;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}.progress-ring-track,.progress-ring-value{fill:none;stroke-width:8}.progress-ring-track{stroke:#b8959633}.progress-ring-value{stroke:#ed91a7;stroke-linecap:round;filter:drop-shadow(0 3px 5px rgba(219,93,119,.2));transition:stroke-dashoffset .36s cubic-bezier(.2,.8,.25,1)}.progress-ring-number{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#644e4d;font-size:clamp(1.55rem,7vw,2rem);font-weight:800;letter-spacing:-.04em}.progress-ring-label{padding:8px 14px;border-radius:999px;background:#ffffffc7;box-shadow:0 10px 24px #ae6f691f;color:#7b605e;font-size:.9rem;font-weight:700;white-space:nowrap}.stage[data-state=complete] .progress-status{top:28%;transform:translate(-50%,-50%) scale(.88)}.copy{display:flex;grid-area:content;min-height:0;align-self:stretch;justify-self:stretch;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:clamp(22px,9svh,86px);text-align:center;transition:opacity .22s ease,transform .22s ease}h1,h2,p{margin:0}h1{font-size:clamp(1.75rem,8.8vw,2.28rem);line-height:1.16}h1 span{display:block;white-space:nowrap}.message{max-width:19rem;margin:14px auto 0;color:#6a5e5b;font-size:.95rem;line-height:1.75}.card-zone{display:flex;grid-area:content;min-height:0;align-self:stretch;justify-self:stretch;flex-direction:column;align-items:center;justify-content:center;gap:14px;overflow-y:auto;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .26s ease,transform .26s ease;scrollbar-width:none}.card-zone::-webkit-scrollbar{display:none}.photo-stack{position:relative;z-index:20;width:min(72vw,270px);aspect-ratio:4 / 5;flex:0 0 auto;cursor:grab;touch-action:none}.photo-stack:active{cursor:grabbing}.photo-stack:focus-visible{outline:3px solid rgba(255,143,165,.65);outline-offset:12px}.stack-shadow{position:absolute;right:12%;bottom:-14px;left:12%;height:25px;border-radius:999px;background:#7e514a2e;filter:blur(12px)}.photo-card{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border:8px solid #fff;border-radius:8px;background:#fff;box-shadow:0 20px 40px #78534d38}.back-card{background:#ffe7e9;transform:rotate(-9deg) translate(-12px,16px)}.mid-card{background:#ecf7e7;transform:rotate(7deg) translate(12px,10px)}.main-card img{display:block;width:100%;height:100%;object-fit:cover}.placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:8px;place-items:center;color:#9b8580;background:linear-gradient(145deg,#fff5f5,#eef9ea)}.main-card img+.placeholder{display:none}.placeholder span{width:58px;height:58px;border-radius:999px;background:radial-gradient(circle at 60% 40%,#ffdbe0 0 28%,transparent 29%),linear-gradient(135deg,#b5d7a6,#ffe2a6)}.count-badge{position:absolute;right:10px;bottom:10px;min-width:42px;padding:8px 10px;border-radius:999px;background:#3f3735c7;color:#fff;font-size:.88rem;font-weight:700;text-align:center}.swipe-hint,.error-message{max-width:min(100%,21rem);margin:0;padding:10px 14px;border-radius:999px;background:#ffffffb8;box-shadow:0 10px 24px #ae6f691f;font-size:.92rem;font-weight:700;text-align:center}.swipe-hint{color:#7b605e}.error-message{margin-top:-2px;border-radius:16px;color:#9d2432;line-height:1.55}.action-bar{position:relative;grid-area:actions;z-index:5;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:12px;align-self:stretch}.action-button,.reset-button{display:flex;min-height:58px;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(193,151,145,.32);border-radius:999px;background:#ffffffbd;color:#554744;box-shadow:0 14px 34px #8a605b24;font-weight:800;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer}.action-button.primary,.reset-button{border:0;background:linear-gradient(135deg,#ff8fa5,#ffbd8f);color:#fff}.action-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.icon{display:grid;width:28px;height:28px;place-items:center;border-radius:999px;background:#ffffff8c;line-height:1}.complete-panel{position:relative;display:grid;grid-area:content;min-height:0;align-self:center;justify-self:stretch;width:100%;padding-block:22px;gap:18px;justify-items:center;opacity:0;pointer-events:none;text-align:center;transform:translateY(18px);transition:opacity .26s ease,transform .26s ease}.complete-panel h2{max-width:21rem;font-size:clamp(1.45rem,1.72rem,2rem);line-height:1.35}.reset-button{width:min(100%,280px)}.stage[data-state=selected] .copy,.stage[data-state=throwing] .copy,.stage[data-state=uploading] .copy,.stage[data-state=complete] .copy{opacity:0;pointer-events:none;transform:translateY(-10px)}.stage[data-state=selected] .card-zone,.stage[data-state=throwing] .card-zone,.stage[data-state=uploading] .card-zone{opacity:1;pointer-events:auto;transform:translateY(0)}.stage[data-state=selected] .card-zone,.stage[data-state=throwing] .card-zone,.stage[data-state=uploading] .card-zone{overflow:visible}.stage[data-state=complete] .action-bar,.stage[data-state=complete] .card-zone{opacity:0;pointer-events:none}.stage[data-state=complete] .complete-panel{opacity:1;pointer-events:auto;transform:translateY(0)}.stage[data-state=throwing] .action-bar,.stage[data-state=uploading] .action-bar{opacity:0;pointer-events:none}@keyframes drift{0%{opacity:0;transform:translate3d(-18px,-10vh,0) rotate(0)}12%,82%{opacity:.9}to{opacity:0;transform:translate3d(32px,115vh,0) rotate(360deg)}}@media (min-width: 760px){.stage{border-inline:1px solid rgba(255,255,255,.62);box-shadow:0 0 80px #a06f6929}}@media (min-width: 410px){h1 span{display:inline}}@media (max-height: 700px){.stage{--status-row: 150px}}@media (max-height: 620px){.stage{--status-row: 120px}.card-zone{gap:10px}.photo-stack{width:min(68vw,220px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}.ambient-petals span{top:14vh;opacity:.35;animation:none}}
