:root{font-family:"Noto Sans Thai",sans-serif;color:#27313b;background:#f6f7f8;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffb254;outline-offset:3px}a{color:inherit;text-decoration:none}.topbar{height:76px;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:0 clamp(20px,5vw,75px);background:#fff;border-bottom:1px solid #ececea}.brand{display:flex;gap:10px;align-items:center}.brand .mark{display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#ff990c,#f9630c);width:42px;height:42px;border-radius:14px;font-weight:800;font-size:24px;box-shadow:0 6px 15px #f879222f}.brand strong{font-size:19px}.brand small{display:block;font-size:11px;color:#7a7e86}.topright{display:flex;align-items:center;gap:28px}.private{font-size:12px;color:#667688}.private span{color:#f77814;font-size:10px}.back{font-size:13px;font-weight:700}.wrap{max-width:1450px;margin:auto;padding:clamp(18px,3vw,40px) clamp(16px,4vw,50px)}.hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:clamp(26px,3vw,38px);min-height:220px;background:linear-gradient(115deg,#ffffff 12%,#fff5e8 100%);color:#27313b;border:1px solid #f8e3d0;border-radius:26px;box-shadow:0 15px 40px rgba(68,42,18,.075)}.hero:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(#ff9a14,#fa6a18)}.hero:after{content:"";position:absolute;width:280px;height:280px;border:1px solid #ff8d1430;border-radius:50%;right:-110px;top:-160px}.hero-copy{z-index:1;max-width:670px}.kicker{font-size:11px;font-weight:800;letter-spacing:2px;margin:0 0 12px;opacity:.82}.hero h1{margin:0;font-size:clamp(32px,3.4vw,46px);line-height:1.22;letter-spacing:0}.hero h1 span{font-weight:500;margin-left:.3em}.intro{font-size:clamp(14px,1.25vw,16px);line-height:1.7;max-width:610px;color:#58636e}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin-top:20px}.action{border:0;border-radius:14px;padding:12px 18px;min-height:48px;background:linear-gradient(135deg,#ff9516,#ff7515);color:#fff;font-weight:800;box-shadow:0 8px 20px #f9841730}.action span{margin-left:20px}.meta{font-size:12px;color:#7b716a}.hero-summary{z-index:1;display:flex;align-items:center;gap:17px;min-width:270px;padding:23px;border-radius:21px;background:linear-gradient(135deg,#ff971b,#f7791a);color:#fff;box-shadow:0 13px 32px #f5822340}.hero-symbol{font-size:38px;line-height:1}.hero-summary>div{display:flex;flex-direction:column;gap:3px}.hero-summary strong{font-size:34px;line-height:1.08;font-weight:800;font-variant-numeric:tabular-nums}.hero-summary span{font-size:11px;line-height:1.4}.hero-duplicate{border-left:1px solid #ffffff66;padding-left:15px}.tile-preview{position:relative;display:block;overflow:hidden;background:#f7f6f4}.tile-preview:focus-visible{outline-offset:-4px}.tile:hover{transform:translateY(-2px);box-shadow:0 12px 28px #27313b16}.tile:hover img{transform:scale(1.025)}.duplicate-stamp{position:absolute;top:10px;left:10px;background:#fff8e8;color:#934b0e;padding:6px 9px;border-radius:8px;font-size:11px;font-weight:800;box-shadow:0 2px 10px #55310e25}.tile-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.tile-size{font-size:11px;color:#7e858d;white-space:nowrap}.tile-tags{line-height:1.5;min-height:18px}.tile-actions .remove-image{color:#a43e29;background:#fff;border-color:#ecd5cf}.tile-actions .remove-image:hover{background:#fff0ee}.tile-actions button:disabled{opacity:.55;cursor:wait}.duplicate-filter{border-color:#ecd7c6}.duplicate-filter span{display:inline-block;min-width:18px;text-align:center;font-variant-numeric:tabular-nums}.message.success{margin:10px 0 16px;padding:12px 16px;border-radius:12px;background:#fff6eb;color:#96531c}#upload-meter{width:100%;height:9px;accent-color:#f47a17;margin-top:8px}#upload-meter[hidden]{display:none}.modal .buttons button:disabled{opacity:.6;cursor:wait}@media(hover:none){.tile:hover{transform:none}.tile:hover img{transform:none}}.content{padding-top:34px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px}.section-heading .kicker{color:#ea7914}.section-heading h2{font-size:clamp(23px,2.5vw,28px);margin:0;color:#27313b}.count{color:#f0781e;font-size:18px}.description{font-size:13px;color:#626b76}.tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:19px 0 20px}.search-wrap{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #e7e9ee;border-radius:16px;padding:0 14px;min-width:min(100%,240px);height:48px;flex:1}.search-wrap span{color:#fa7c20;font-size:24px}.search-wrap input{border:0;outline:0;min-width:0;flex:1;background:transparent;font-size:16px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter{border:1px solid #e4e6e8;color:#617084;background:#fff;border-radius:100px;padding:12px 15px;font-weight:700;font-size:12px}.filter.selected,.filter:hover{color:#d96317;background:#fff0e4;border-color:#fbd1ae}.message{color:#667184;padding:28px 0}.message[hidden]{display:none}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(208px,1fr));gap:16px}.tile{min-width:0;overflow:hidden;background:#fff;border:1px solid #e9e5df;border-radius:18px;box-shadow:0 5px 16px #27313b0d;transition:box-shadow .2s ease,transform .2s ease}.tile img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#f1f0ed;transition:transform .24s ease}.tile-body{padding:13px;min-width:0}.tile h3{margin:10px 0 7px;font-size:14px;overflow-wrap:anywhere;line-height:1.55;min-height:22px}.tile p{font-size:12px;color:#737a83;margin:0;overflow-wrap:anywhere}.tag{display:inline-flex;background:#fff1e7;color:#d3661c;border-radius:7px;font-size:10px;font-weight:800;padding:6px 8px}.tile-actions{margin-top:12px;display:flex;gap:8px}.tile-actions a,.tile-actions button{min-height:38px;flex:1;padding:8px 10px;font-size:12px;font-weight:700;border:1px solid #eed9ca;color:#b95e22;background:#fffaf6;border-radius:10px;white-space:nowrap}.empty{border:1px dashed #edcdb3;border-radius:20px;background:#fffdfa;padding:40px 18px;text-align:center;grid-column:1/-1}.empty strong{display:block;font-size:19px}.empty p{color:#73808b}.foot{padding:45px 0 18px;text-align:center;color:#88909b;font-size:11px}.modal{width:min(94vw,550px);max-height:min(92dvh,850px);border:1px solid #ece5dc;border-radius:22px;padding:0;background:#fff;box-shadow:0 24px 80px #151f2e55;color:#27313b}.modal::backdrop{background:#15233790;backdrop-filter:blur(4px)}.modal form{padding:24px;overflow-y:auto;max-height:92dvh}.modal-top{display:flex;justify-content:space-between;align-items:start;gap:12px}.modal-top .kicker{color:#f47a19;margin-bottom:6px}.modal-top h2{margin:0;font-size:26px}.close{background:#f4f5f7;border:0;width:36px;height:36px;border-radius:13px;font-size:24px}.explain{font-size:13px;color:#738091;line-height:1.8;margin:12px 0 20px}.drop{border:2px dashed #f0b080;background:#fff9f4;border-radius:16px;padding:19px;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;text-align:center;color:#cf5916}.drop-icon{width:42px;height:42px;border-radius:13px;background:#ffedd9;display:grid;place-items:center;font-size:25px}.drop strong{font-size:17px}.drop span:last-of-type{font-size:12px;color:#9d7e66}.drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.selected-files{font-size:12px;color:#687685;margin:12px 0 18px;overflow-wrap:anywhere}.field{display:flex;flex-direction:column;gap:7px;margin:14px 0}.field span{font-weight:800;font-size:13px}.field select,.field input{min-height:48px;padding:11px 12px;border:1px solid #e2e6eb;border-radius:12px;background:#fff;color:#263344;font-size:16px;min-width:0}.notice{background:#f7f8f9;border-radius:10px;padding:12px 14px;color:#6c7280;font-size:12px;line-height:1.8}.buttons{display:flex;gap:10px;justify-content:end;margin-top:20px}.buttons button{border:0;border-radius:12px;min-height:46px;padding:11px 15px;font-weight:800}.cancel{background:#f0f2f4;color:#556476}.save{color:#fff;background:linear-gradient(135deg,#ff960f,#f36b12)}.save:disabled{opacity:.5}#upload-status{font-size:13px;margin-top:12px;color:#c55f0d;line-height:1.6}@media(max-width:670px){.topbar{height:66px;padding:0 16px}.topright .private{display:none}.wrap{padding:14px 13px 34px}.hero{padding:22px;min-height:0;border-radius:22px;flex-direction:column;align-items:stretch;gap:17px}.hero h1{font-size:32px}.intro{font-size:14px;margin:10px 0;line-height:1.65}.hero-summary{width:100%;min-width:0;max-width:none;justify-content:space-around;padding:13px 15px}.hero-summary strong{font-size:26px}.hero-symbol{font-size:25px}.hero-actions{margin-top:16px}.meta{display:none}.action{width:100%;min-height:48px}.section-heading{align-items:start}.description{display:none}.content{padding-top:28px}.tools{display:block;margin:16px 0}.search-wrap{width:100%}.filters{margin-top:12px;gap:7px}.filter{padding:9px 11px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.tile{border-radius:15px}.tile-body{padding:11px}.tile h3{font-size:13px}.tile p{font-size:11px}.modal{max-height:94dvh}.modal form{padding:19px;max-height:94dvh}.buttons{position:sticky;bottom:0;background:#fff;padding:8px 0 calc(8px + env(safe-area-inset-bottom));box-shadow:0 -7px 15px #fff}}@media(max-width:355px){.gallery{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}