*{box-sizing:border-box}body{margin:0;background:#fff7ed;color:#3b2924;font-family:system-ui,-apple-system,sans-serif}main{max-width:980px;margin:auto;padding:20px}.eyebrow{letter-spacing:.12em;font-size:12px;color:#a35b43}header{text-align:center;padding:30px 10px 20px}h1{font-size:clamp(28px,6vw,54px);margin:8px 0}header p{color:#765d55}.panel{background:#fff;border:1px solid #f1d8c8;border-radius:24px;padding:22px;margin:18px 0;box-shadow:0 12px 30px #8e4c2510}.people{display:grid;grid-template-columns:1fr 1fr;gap:14px}fieldset{border:1px solid #f0d7c7;border-radius:16px;padding:16px}legend{font-weight:700}label{display:block;font-weight:650;margin:10px 0}input,select,button{width:100%;padding:13px;border:1px solid #e6c6b5;border-radius:12px;font:inherit}button{background:#e87855;color:#fff;border:0;font-weight:800;cursor:pointer;margin-top:12px}button:disabled{background:#cbbab2}.scene{position:relative;min-height:330px;overflow:hidden;border-radius:24px;background:linear-gradient(#252338,#4c3550 58%,#ad7653 58%);display:flex;align-items:end;justify-content:center;padding-bottom:30px}.warehouse{position:absolute;top:24px;left:50%;transform:translateX(-50%);width:190px;height:180px;background:#1f1825;border:8px solid #b98567;border-bottom:0;border-radius:100px 100px 0 0;text-align:center;color:#ffdcae;padding-top:26px;box-shadow:0 0 40px #ffcf8a55}.warehouse span{font-size:11px;letter-spacing:.2em}.warehouse strong{display:block;font-size:22px;line-height:1.05;margin-top:8px}.warehouse i{display:block;font-size:42px;font-style:normal}.actors{display:flex;align-items:center;gap:12px;position:relative;z-index:2;transition:transform 1.2s ease}.hand-hold{width:24px;height:24px;display:grid;place-items:center;color:#e87855;font-size:23px;opacity:0;transform:scale(.5);transition:opacity .8s ease,transform .8s ease;z-index:3}.fruit{width:92px;height:92px;border-radius:45% 55% 50% 50%;background:#fff7ed;display:grid;place-items:center;font-size:58px;filter:drop-shadow(0 8px 4px #33201555);transition:transform 1.2s ease}.fruit::after{content:'♥';font-size:15px;color:#e87855;position:absolute;transform:translate(24px,26px)}.scene.start .fruit:first-child{transform:translateX(-70px)}.scene.start .fruit:last-child{transform:translateX(70px)}.scene.hold .actors{gap:0}.scene.hold .hand-hold{opacity:1;transform:scale(1)}.scene.walk .actors{transform:translateY(-8px) translateX(0)}.scene.enter .actors{transform:translateY(-130px) scale(.5);opacity:.2}.scene.enter .fruit{transform:translateY(-70px)}#status{text-align:center;position:absolute;bottom:7px;color:#ffe9cf;margin:0;font-weight:700}.result h2{margin-top:0}.story{background:#fff3dc;border-radius:16px;padding:16px;margin-top:12px}.error{color:#a22}.result[hidden]{display:none}footer{text-align:center;color:#92756b;font-size:12px;padding:20px}@media(max-width:650px){main{padding:12px}.people{grid-template-columns:1fr}.scene{min-height:300px}.hand-hold{width:18px;height:18px;font-size:18px}.fruit{width:78px;height:78px;font-size:48px}.warehouse{transform:translateX(-50%) scale(.82)}header{padding-top:18px}}
/* zero-cost character and warehouse animation layer */
.scene{isolation:isolate}
.scene:before{content:'✦  ·  ✧  ·  ✦';position:absolute;inset:30px 0 auto;text-align:center;color:#ffe9a8;font-size:26px;letter-spacing:16px;opacity:.65;animation:twinkle 2s infinite alternate}
.warehouse:after{content:'';position:absolute;left:50%;bottom:0;width:78px;height:122px;transform:translateX(-50%);background:linear-gradient(90deg,#180f1d,#8c5362,#180f1d);border:4px solid #d39a72;transform-origin:bottom;transition:transform 1s,opacity 1s}
.fruit{position:relative;background:radial-gradient(circle at 32% 25%,#fff 0 8%,#fff7ed 9% 45%,#e7c2a8 100%);animation:bob 1.4s ease-in-out infinite alternate}.fruit:before{content:'◡';position:absolute;bottom:15px;font-size:22px;color:#7a3d45;font-weight:bold}.fruit i{position:absolute;top:8px;right:17px;color:#fff2a6;font-style:normal;animation:twinkle .8s infinite alternate}
.scene.start .fruit-a{transform:translateX(-150px) scale(.2);opacity:0}.scene.start .fruit-b{transform:translateX(150px) scale(.2);opacity:0}.scene.approach .fruit-a{transform:translateX(-42px)}.scene.approach .fruit-b{transform:translateX(42px)}.scene.hold .actors{gap:0}.scene.hold .hand-hold{opacity:1;transform:scale(1);animation:heartBeat .8s infinite alternate}.scene.walk .actors{transform:translateY(-10px);animation:walk .55s infinite alternate}.scene.door-open .warehouse:after{transform:translateX(-50%) rotateY(78deg);opacity:.2}.scene.door-open .warehouse{box-shadow:0 0 80px #ffd77d}.scene.inside .actors{transform:translateY(-105px) scale(.55);opacity:.45}.scene.inside .warehouse:after{transform:translateX(-50%) rotateY(84deg);opacity:.1}.scene.exit .actors{transform:translateY(0) scale(1);animation:exitWalk 1s ease-out}.scene.reveal .actors{animation:none}
@keyframes bob{to{transform:translateY(-5px) rotate(2deg)}}@keyframes walk{to{margin-bottom:8px}}@keyframes exitWalk{0%{opacity:.3;transform:translateY(-80px) scale(.6)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes heartBeat{to{transform:scale(1.25)}}@keyframes twinkle{to{opacity:1;filter:drop-shadow(0 0 8px #ffe58a)}}
@media(max-width:650px){.fruit{width:76px;height:76px;font-size:46px}.warehouse{transform:translateX(-50%) scale(.8)}}
/* SVG fruit character layer: zero-cost, sharp at every screen size */
.fruit{background:transparent;filter:drop-shadow(0 10px 5px #33201566);animation:bob 1.4s ease-in-out infinite alternate}.fruit-svg{width:100%;height:100%;overflow:visible}.fruit-svg .arm,.fruit-svg .leg{stroke:#572f35;stroke-width:3;stroke-linecap:round;fill:none}.fruit-svg circle{stroke:#572f35;stroke-width:.4}.fruit:before{display:none}.fruit i{z-index:2;top:3px;right:5px}.scene.start .fruit-a{transform:translateX(-150px) scale(.2);opacity:0}.scene.start .fruit-b{transform:translateX(150px) scale(.2);opacity:0}.scene.approach .fruit-a{transform:translateX(-42px)}.scene.approach .fruit-b{transform:translateX(42px)}.scene.hold .actors{gap:0}.scene.hold .hand-hold{opacity:1;transform:scale(1);animation:heartBeat .8s infinite alternate}.scene.walk .actors{transform:translateY(-10px);animation:walk .55s infinite alternate}.scene.inside .actors{transform:translateY(-105px) scale(.55);opacity:.45}.scene.exit .actors{transform:translateY(0) scale(1);animation:exitWalk 1s ease-out}.scene.reveal .actors{animation:none}@media(max-width:650px){.fruit{width:88px;height:88px;font-size:46px}.fruit-svg{width:88px;height:100px}}
.manual-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:650px){.manual-choice{grid-template-columns:1fr}}
.choice-mode{margin-top:12px}.picker-block{margin-top:18px;padding:14px;border:1px solid #ead8cc;border-radius:16px;background:#fffaf6}.picker-block h3{margin:0 0 10px;font-size:17px}.fruit-cards{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.fruit-card{min-width:0;margin:0;padding:7px 3px;border:2px solid transparent;border-radius:14px;background:#fff;box-shadow:0 4px 12px #8b5e3b18;color:#35252a;cursor:pointer;font:inherit;transition:transform .2s,border-color .2s,box-shadow .2s}.fruit-card:hover{transform:translateY(-3px)}.fruit-card.selected{border-color:#e87855;box-shadow:0 0 0 3px #ffd0bd,0 8px 18px #e8785544;animation:selectedFruit .8s ease-in-out infinite alternate}.fruit-card .fruit-svg{height:58px;width:58px;display:block;margin:auto}.fruit-card strong{display:block;font-size:12px;margin-top:3px}.fruit-card .arm,.fruit-card .leg{stroke-width:3}.picker-block:focus-within{border-color:#e87855}@keyframes selectedFruit{to{transform:translateY(-4px) scale(1.04)}}@media(max-width:650px){.fruit-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.fruit-card .fruit-svg{height:54px;width:54px}.fruit-card strong{font-size:11px}}
