:root{--bg:#0b1020;--bg-soft:#1b2342;--ink:#f4f1ea;--ink-dim:#f4f1eaad;--accent:#ffd98a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:linear-gradient(180deg, var(--bg), var(--bg-soft));color:var(--ink);-webkit-text-size-adjust:100%;font:16px/1.7 system-ui,-apple-system,Noto Sans KR,Noto Sans JP,sans-serif}.shell{max-width:60rem;margin:0 auto;padding:2rem 1rem 4rem}h1{margin:0 0 .25rem;font-size:clamp(1.75rem,5vw,2.5rem)}header p{color:var(--ink-dim);margin:0 0 2rem}.notice{background:#ffd98a1f;border:1px solid #ffd98a4d;border-radius:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.state{color:var(--ink-dim)}.hint{color:var(--accent)}.scene{border-radius:.75rem;width:100%;height:min(70vh,40rem);position:relative;overflow:hidden}.scene canvas{display:block}button{font:inherit;color:var(--ink);border:1px solid var(--ink-dim);cursor:pointer;background:#ffffff14;border-radius:.75rem;min-height:2.75rem;padding:.625rem 1rem}button:disabled{opacity:.5;cursor:default}.flat{color:var(--ink);max-width:40rem}.flat h2{margin:0}.flat-meta{color:var(--ink-dim);margin:0 0 1rem}.flat-dates{color:var(--ink-dim);grid-template-columns:auto 1fr;gap:0 1rem;margin:0 0 1rem;display:grid}.flat-dates dd{margin:0}.flat-photo{border-radius:.75rem;max-width:100%;height:auto;margin:0 0 1rem;display:block}.flat-letter{white-space:pre-wrap}.flat-offerings{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}a{color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.swatch:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.cta{border:1px solid var(--accent);border-radius:.75rem;min-height:2.75rem;margin:0 0 1.5rem;padding:.625rem 1rem;text-decoration:none;display:inline-block}.create,.create-done{max-width:34rem;color:var(--ink);flex-direction:column;gap:1.25rem;display:flex}.create h2,.create-done h2{margin:0}.create-done h2:focus{outline:none}.hint-dim{color:var(--ink-dim);margin:.25rem 0 0;font-size:.9375rem}.field{flex-direction:column;gap:.25rem;display:flex}.field label{font-weight:600}.create input[type=text],.create input[type=date],.create select,.create textarea{font:inherit;color:var(--ink);border:1px solid var(--ink-dim);background:#ffffff14;border-radius:.75rem;width:100%;min-height:2.75rem;padding:.5rem .75rem;font-size:1rem}.create select option{color:#000}.create textarea{resize:vertical}.create input[type=file]{font:inherit;min-height:2.75rem;color:var(--ink-dim);font-size:1rem}.create input[type=range]{width:100%;min-height:2.75rem;accent-color:var(--accent)}.create fieldset{border:1px solid var(--ink-dim);border-radius:.75rem;min-width:0;margin:0;padding:.5rem 1rem 1rem}.create legend{padding:0 .5rem;font-weight:600}.choice{cursor:pointer;align-items:center;gap:.5rem;min-height:2.75rem;margin-right:1.5rem;display:inline-flex}.choice input{width:1.25rem;height:1.25rem;accent-color:var(--accent)}.swatches{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.75rem;display:grid}.swatch{cursor:pointer;text-align:center;border:2px solid #0000;border-radius:.75rem;flex-direction:column;align-items:center;gap:.25rem;min-height:2.75rem;padding:.5rem;display:flex;position:relative}.swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.swatch-chip{border:1px solid var(--ink-dim);border-radius:.5rem;width:100%;height:2rem}.swatch-name{font-size:.9375rem}.swatch:has(input:checked){border-color:var(--accent);background:#ffd98a1f}.swatch:has(input:checked) .swatch-name{text-underline-offset:.25em;font-weight:700;text-decoration:underline}.file-chosen{word-break:break-all;align-items:center;gap:.5rem;margin:.25rem 0 0;display:flex}.shape summary{cursor:pointer;align-items:center;min-height:2.75rem;font-weight:600;display:flex}.form-error:empty{display:none}.form-error{color:var(--accent);border:1px solid var(--accent);border-radius:.75rem;padding:.75rem 1rem}.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:700}.share-url{word-break:break-all;color:var(--ink-dim);margin:0}.owner,.owned{max-width:34rem;color:var(--ink);flex-direction:column;align-items:flex-start;gap:1rem;margin:2.5rem 0 0;display:flex}.owner h2,.owned h2{margin:0;font-size:1.25rem}.owner-claim{color:var(--ink-dim);margin-top:3rem}.owned ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.owned a{align-items:center;min-height:2.75rem;display:inline-flex}.owner-edit{width:100%}.owner-actions{flex-wrap:wrap;gap:.75rem;display:flex}.claim summary,.shape summary{cursor:pointer;align-items:center;min-height:2.75rem;display:flex}.claim form,.delete-box form{flex-direction:column;gap:1rem;margin-top:.5rem;display:flex}.claim .field input,.delete-box .field input{font:inherit;color:var(--ink);border:1px solid var(--ink-dim);background:#ffffff14;border-radius:.75rem;width:100%;max-width:34rem;min-height:2.75rem;padding:.5rem .75rem;font-size:1rem}.delete-box{border-top:1px solid var(--ink-dim);width:100%;margin-top:2rem;padding-top:1.5rem}.delete-warn{border-left:.375rem solid var(--accent);background:#ffd98a1a;margin:0;padding:.75rem 1rem}.danger{color:var(--accent);border:2px dashed var(--accent);background:0 0;font-weight:700}.danger:before{content:"⚠︎ ";white-space:pre}.danger:disabled{border-style:dotted}.delete-actions{justify-content:space-between;margin-top:.5rem}.owner-photo{flex-direction:column;gap:.5rem;width:100%;display:flex}.owner-photo input[type=file]{font:inherit;min-height:2.75rem;color:var(--ink-dim);font-size:1rem}.owner-photo label{font-weight:600}.confirm{border-left:.375rem solid var(--accent);background:#ffd98a1a;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.confirm p{flex-basis:100%;margin:0}.visitor{max-width:40rem;color:var(--ink);flex-direction:column;gap:1rem;margin:1.5rem 0 0;display:flex}.visitor .flat-offerings{margin-top:0}.visitor button[disabled]{opacity:.85;border-color:var(--accent);color:var(--accent)}.offering-counts{color:var(--ink-dim);flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;padding:0;font-size:1rem;list-style:none;display:flex}.pebbles h3{margin:0 0 .5rem}.pebble-list{flex-direction:column;gap:.5rem;max-height:20rem;margin:0 0 1rem;padding:0;list-style:none;display:flex;overflow-y:auto}.pebble-list li{border-left:.25rem solid var(--accent);overflow-wrap:anywhere;background:#ffffff0d;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.5rem .75rem;font-size:1rem;display:flex}.pebble-list time{color:var(--ink-dim)}.pebble-choose{border:1px solid var(--ink-dim);border-radius:.75rem;flex-direction:column;min-width:0;margin:0 0 .75rem;padding:.5rem 1rem;display:flex}.pebble-choose label{align-items:center;gap:.75rem;min-height:2.75rem;font-size:1rem;display:flex}.pebble-choose input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none}.quiet{min-height:2.75rem;color:var(--ink-dim);background:0 0;border:none;padding:.5rem 0;font-size:.9375rem;text-decoration:underline}.quiet:hover{color:var(--ink)}.report{border:1px solid var(--ink-dim);border-radius:.75rem;max-width:36rem;margin-top:1.5rem;padding:1rem}.report h3{margin:0 0 .25rem}.report fieldset{border:1px solid var(--ink-dim);border-radius:.75rem;flex-direction:column;min-width:0;margin:.75rem 0;padding:.5rem 1rem;display:flex}.report label{margin-top:.75rem;font-weight:600;display:block}.report fieldset label{align-items:center;gap:.75rem;min-height:2.75rem;margin-top:0;font-size:1rem;font-weight:400;display:flex}.report fieldset input{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none}.report textarea{font:inherit;color:var(--ink);border:1px solid var(--ink-dim);resize:vertical;background:#ffffff14;border-radius:.75rem;width:100%;padding:.5rem .75rem;font-size:1rem}.report button[type=submit]{margin-top:.75rem}.legal{max-width:42rem}.legal h1{margin-bottom:.25rem}.legal h2{margin:2rem 0 .5rem;font-size:1.125rem}.legal p{margin:0 0 .75rem}.legal-rows{flex-direction:column;gap:.75rem;margin:0;display:flex}.legal-rows dt{font-weight:600}.legal-rows dd{color:var(--ink-dim);margin:0}.legal-contact dl{grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0;display:grid}.legal-contact dd{margin:0}.legal-links{border-top:1px solid #f4f1ea26;flex-wrap:wrap;gap:1.5rem;margin-top:3rem;padding-top:1rem;font-size:.9375rem;display:flex}.legal-links a{color:var(--ink-dim)}
