:root{color-scheme:light;--paper:#faf6f0;--ink:#483846;--muted:#725f6c;--accent:#82465f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 system-ui,'Yu Gothic',sans-serif}header{padding:20px 22px;border-bottom:1px solid #dfcfd4;background:#fffaf5}.brand{font-size:23px;font-weight:750;letter-spacing:-.6px}.flower{color:#a45c7f}header p{font-size:12px;margin:2px 0}main{max-width:1180px;margin:auto;padding:24px 18px}.intro{padding:12px 0 24px}.eyebrow{font-size:11px;letter-spacing:1.4px;font-weight:700;color:var(--accent)}h1{font-size:clamp(26px,4vw,42px);line-height:1.5;margin:12px 0}p{margin:10px 0}label{display:block;font-size:13px;font-weight:600}input,select,textarea,button{font:inherit}input[type=search],select,textarea{width:100%;padding:11px;border:1px solid #cdbbc4;border-radius:10px;color:var(--ink);background:#fffdfb}button{border:1px solid #c6adb9;background:#fffaf7;color:#633d51;padding:9px 14px;border-radius:10px;cursor:pointer;font-weight:650}button:hover{background:#eedee6;color:#412536}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #955273;outline-offset:3px}.row{display:flex;gap:12px;margin-top:12px}.row label{flex:1;min-width:0}.filters{background:#f1e8e7;border-radius:16px;padding:16px;max-width:650px}.check{display:flex;align-items:center;gap:6px;margin-top:12px}.check input{accent-color:#82465f}.check input,#favorites{width:17px;height:17px}#count{margin:22px 0 12px;color:var(--muted)}#grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(270px,100%),1fr));gap:18px}.card{padding:0;text-align:left;border-radius:15px;overflow:hidden;background:#fffdfa;width:100%}.card:hover{background:#fff7fa}.card h3{font-size:15px;line-height:1.65;margin:6px 0}.card .caption{padding:13px 15px}.card small{font-size:11px;color:#795b6c}.stage{background:#20212b;position:relative;width:100%;aspect-ratio:12/7;overflow:hidden;isolation:isolate;border-radius:12px}.card .stage{border-radius:0;pointer-events:none}.scene{width:480px;height:280px;position:absolute;left:0;top:0;transform-origin:top left;overflow:hidden;color:#fff7f0}.node{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;white-space:pre-line;font-size:23px;line-height:1.45;font-weight:650;border:0;padding:0;color:#fff7f0;transform-origin:center;flex-shrink:0}.label{font-size:25px}.tile,.panel,.button,.pill,.bar,.circle,.skeleton{background:var(--tone);color:#25212d}.tile{border-radius:12px;padding:12px;font-size:22px}.button{border-radius:10px;font-size:22px;padding:5px}.node.button:hover{background:var(--tone);color:#25212d;outline:3px solid #fff4e6}.pill{border-radius:100px}.bar{border-radius:5px}.circle{border-radius:50%}.line{background:var(--tone)}.ring{border:5px solid var(--tone);border-radius:50%;border-right-color:transparent}.frame{border:3px solid var(--tone);border-radius:9px}.photo{background:radial-gradient(circle at 72% 24%,#f6e6bd 0 9%,transparent 9.5%),linear-gradient(145deg,transparent 53%,#3c625a 54% 76%,transparent 77%),linear-gradient(35deg,#293e46 0 44%,transparent 45%),var(--tone);border:4px solid #f0e5d7;border-radius:8px}.bottle,.bottle-outline{border-radius:25px 25px 16px 16px;background:var(--tone);border:3px solid #eaddce}.bottle:before,.bottle-outline:before{content:'';position:absolute;width:46%;height:20px;background:#d8bd83;top:-10px;left:27%;border-radius:4px}.bottle:after{content:'FLEUR';background:#f5ead7;color:#433144;padding:12px 2px;position:absolute;left:8%;right:8%;top:35%;font-size:19px;letter-spacing:2px}.bottle-outline{background:transparent}.cube{background:linear-gradient(105deg,var(--tone) 0 70%,#99657b 70%);border:2px solid #eeded7;border-radius:4px;color:#302335;box-shadow:18px 12px 0 #10101855}.shine{background:linear-gradient(90deg,transparent,#fff9e899,transparent)}.lens{border:4px solid #f6e9d3;border-radius:50%;background:radial-gradient(circle at 20% 30%,#f6e6bd 0 15%,transparent 16%),repeating-linear-gradient(45deg,#789a8b 0 20px,#375b51 20px 40px);font-size:16px;text-shadow:0 2px 4px #000}.node.heart,.node.check{font-size:85px;color:var(--tone);margin:0}.gradient-text{background:linear-gradient(90deg,#f5ddaa,#eba1c7,#b9dbd0);background-clip:text;color:transparent;font-size:37px}.outline-text{color:transparent;-webkit-text-stroke:1.5px var(--tone);font-size:37px}.vertical{writing-mode:vertical-rl;font-size:25px}.envelope{background:linear-gradient(30deg,#c783a0 49%,transparent 50%),linear-gradient(-30deg,#d9a8bd 49%,#efd4e0 50%);border-radius:6px}.document{background:repeating-linear-gradient(0deg,#efe4cd 0 28px,#c8b7a2 29px 31px);border:15px solid #efe4cd;border-radius:5px;color:#403344}.skeleton{background:linear-gradient(100deg,#41414e,#73717b,#41414e);border-radius:8px}.mountain{background:var(--tone);clip-path:polygon(0 100%,35% 5%,60% 65%,80% 20%,100% 100%)}.leaves{background:radial-gradient(ellipse at 20% 50%,var(--tone) 0 25%,transparent 26%),radial-gradient(ellipse at 75% 40%,var(--tone) 0 30%,transparent 31%)}.portrait{background:radial-gradient(circle at 50% 35%,#f4d7bd 0 21%,transparent 22%),radial-gradient(ellipse at 50% 110%,var(--tone) 0 55%,#3f4557 56%);border-radius:12px}.axis{border-left:3px solid #ccbfc7;border-bottom:3px solid #ccbfc7}.chart-line{background:var(--tone);clip-path:polygon(0 84%,25% 56%,50% 67%,75% 21%,100% 0,100% 6%,76% 27%,51% 73%,26% 62%,0 90%)}.map{background:repeating-linear-gradient(35deg,#697d71 0 25px,#9cab96 26px 30px);border-radius:10px}.route{border-top:5px dashed var(--tone);transform:rotate(-15deg)}.pin{background:var(--tone);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.flower{color:#a45c7f}.node.flower{background:radial-gradient(circle,#e8c78c 0 20%,transparent 21%),radial-gradient(ellipse,var(--tone) 0 60%,transparent 61%);border-radius:45%}.controls{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.timeline input{display:block;width:100%;accent-color:#82465f}#clock{font-size:12px;color:#725f6c}dialog{width:min(760px,calc(100% - 20px));max-height:94dvh;border:1px solid #d9c4ce;border-radius:18px;padding:0;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#21151eaa}.detail-inner{padding:20px}.close{display:block;margin-left:auto}h2{font-size:22px;line-height:1.6;margin:12px 0 20px}textarea{min-height:90px;resize:vertical;margin-top:8px}#prompt{min-height:240px}details{margin:18px 0}summary{cursor:pointer;font-weight:650}#status{min-height:24px;color:#7c3554}#scrollBox{height:95px;overflow:auto;border:1px solid #a48d99;border-radius:8px;padding:8px;background:#f1e7ed}#scrollBox>div{height:550px;position:relative}#scrollBox span{position:absolute;bottom:0;left:0}footer{font-size:12px;color:#725f6c;margin-top:35px;padding:20px 0}body.modal-open{overflow:hidden}[hidden]{display:none!important}@media(min-width:700px){.intro br{display:none}.intro{padding-bottom:20px}.filters{max-width:none}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
.lens{overflow:hidden;background:#789a8b;text-indent:-9999px}.lens .photo{position:absolute;border:0;border-radius:0;max-width:none;flex-shrink:0}.stage .node:focus-visible{outline:4px solid #fff1be;outline-offset:3px}

.gradient-text{background-size:250% 100%}.chart-line{background:transparent;clip-path:none}.chart-line:before{content:'';position:absolute;inset:0;background:var(--tone);clip-path:polygon(0 84%,25% 56%,50% 67%,75% 21%,100% 0,100% 6%,76% 27%,51% 73%,26% 62%,0 90%)}


.route{border:0;transform:none}

.kaleido{clip-path:polygon(0 0,100% 0,70.71% 70.71%);background:radial-gradient(circle at 50% 20%,#efe4cd 0 12%,transparent 13%),repeating-linear-gradient(45deg,var(--tone) 0 14px,#789a8b 14px 28px,#252535 28px 40px)}

.app-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0}.app-actions a{color:var(--accent)}.app-guide{margin:32px 0;padding:20px;border:1px solid #dfcfd4;border-radius:16px}.app-guide summary{cursor:pointer;font-weight:700}.import-label input{display:block;max-width:100%;font-size:13px}.app-guide p{max-width:65ch}.app-actions [hidden]{display:none}header{padding-top:max(20px,env(safe-area-inset-top))}body{padding-bottom:env(safe-area-inset-bottom)}@media(max-width:480px){.app-guide{padding:14px}.app-actions{align-items:stretch;flex-direction:column}.app-actions button{width:100%}}
