*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif;color:#3d3833;background:#f7f2e9}button{font:inherit}.app{min-height:100vh;max-width:620px;margin:auto;background:#fffdf9;position:relative;padding:20px 22px 44px;overflow:visible}.top{display:flex;justify-content:space-between;align-items:center}.icon,.login{border:0;background:transparent}.icon{font-size:28px;color:#444}.login{border:2px solid #2f7957;color:#2f7957;border-radius:24px;padding:9px 16px;font-weight:800;background:#fffdf9}.hero{text-align:center;position:relative;padding-top:4px}h1{margin:0;line-height:1.03}h1 span{display:block;color:#317658;font-size:clamp(28px,7vw,42px);letter-spacing:3px}h1 strong{display:block;color:#e95850;font-size:clamp(42px,11vw,68px);letter-spacing:-3px}.dday{display:inline-flex;flex-direction:column;background:#f7efe3;border-radius:14px;padding:8px 38px;margin:18px 0 10px;color:#5c4637}.dday small{font-weight:800;font-size:16px}.dday b{font-size:38px;line-height:1;color:#317658}.spark{position:absolute;color:#e8bd56;opacity:.8}.s1{left:13%;top:70px}.s2{right:10%;top:160px;color:#eadfce}.s3{right:20%;top:70px}.s4{left:10%;top:210px;color:#eadfce}.tree{width:min(76vw,410px);height:min(86vw,470px);margin:8px auto 0;display:flex;align-items:center;justify-content:center}.tree img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.actions{margin-top:4px}.token{height:72px;border:2px solid #eadfce;border-radius:20px;display:flex;align-items:center;gap:12px;padding:0 20px;font-size:18px;font-weight:800;background:#fff}.token b{margin-left:auto;font-size:32px;color:#317658}.ticket{display:grid;place-items:center;width:44px;height:32px;background:#f4c55d;color:#fff;border-radius:8px}.draw{width:100%;height:82px;margin-top:16px;border:0;border-bottom:4px solid #c9423c;border-radius:22px;background:#eb5b52;color:#fff;font-weight:900;font-size:clamp(21px,6vw,30px);box-shadow:0 5px 14px #e8585030}.draw span{margin-right:10px}.draw i{float:right;margin-right:8px;font-size:38px;line-height:28px}.note{text-align:center;color:#9b9188;font-size:12px;margin:9px 0 0}.menu-backdrop{position:fixed;inset:0;background:rgba(55,45,35,.12);z-index:19}.side-menu{position:absolute;z-index:20;top:66px;left:20px;width:190px;padding:10px;background:#fffdf9;border:1px solid #eadfce;border-radius:20px;box-shadow:0 12px 30px rgba(80,60,40,.16);display:flex;flex-direction:column;gap:4px;opacity:0;transform:translateY(-8px) scale(.98);pointer-events:none;transition:.16s ease}.side-menu.open{opacity:1;transform:none;pointer-events:auto}.menu-item{border:0;background:transparent;border-radius:14px;padding:13px 14px;text-align:left;color:#494540;font-weight:800}.menu-item:hover,.menu-item:focus-visible{background:#f7f2e9}.menu-item.active{background:#edf4ec;color:#317658}.icon{cursor:pointer}.login{cursor:pointer}@media(min-width:800px){body{padding:28px}.app{min-height:960px;border-radius:30px;box-shadow:0 18px 50px #755d4030}.tree{width:min(58vw,350px);height:365px;margin-top:6px}.actions{margin-top:8px}}/* centered compact token card */
.token{width:min(88%,460px);margin-left:auto;margin-right:auto;box-sizing:border-box}
.login:disabled{opacity:.55;cursor:default}.login.signed-in{background:#edf4ec}

/* 04 collection */
.menu-item{display:block;width:100%;text-decoration:none;font:inherit;cursor:pointer}.menu-item.coming{width:100%}
.collection-page{background:#f7f2e9}.collection-app{max-width:760px;min-height:100vh;padding-bottom:54px}.collection-head{text-align:center;padding:14px 0 18px}.eyebrow{margin:2px 0 5px;color:#c49a43;font-size:11px;font-weight:900;letter-spacing:2px}.collection-title{margin:0;color:#317658;font-size:clamp(34px,8vw,48px);letter-spacing:-1px}.collection-sub{margin:8px 0 18px;color:#81776d;font-size:14px}.collection-progress{width:min(92%,460px);margin:auto;padding:12px 16px;border:2px solid #eadfce;border-radius:18px;background:#fff;display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:800}.collection-progress strong{color:#317658;font-size:20px}.collection-panel{background:#fff;border:1px solid #eee3d5;border-radius:24px;padding:14px;box-shadow:0 8px 24px rgba(78,61,42,.07)}.collection-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:#f7f2e9;padding:5px;border-radius:18px}.collection-tab{border:0;border-radius:14px;padding:11px 8px;background:transparent;color:#766e67;font-weight:900;cursor:pointer}.collection-tab span,.collection-tab b{display:block}.collection-tab b{font-size:11px;margin-top:2px;font-weight:800}.collection-tab.active{background:#fff;color:#317658;box-shadow:0 2px 8px rgba(72,58,43,.08)}.collection-tab[data-type="failure"].active{color:#c55a4e}.collection-status{text-align:center;margin:13px 4px;color:#92877d;font-size:12px;min-height:18px}.ornament-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.ornament-card{min-width:0;margin:0;background:#fffdf9;border:1px solid #eee4d8;border-radius:18px;padding:8px 7px 9px;text-align:center;overflow:hidden}.ornament-thumb{height:110px;border-radius:14px;background:#fbf8f2;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.ornament-thumb img{width:100%;height:100%;object-fit:contain;transition:.18s ease}.ornament-card h2{font-size:11px;line-height:1.3;margin:8px 1px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#4b4640}.ornament-card p{font-size:10px;margin:0;color:#9a9086}.ornament-card.locked .ornament-thumb img{filter:grayscale(1) brightness(.4);opacity:.16}.ornament-lock{display:none;position:absolute;inset:0;place-items:center;font-weight:900;font-size:34px;color:#b7afa6}.ornament-card.locked .ornament-lock{display:grid}.ornament-card.collected{border-color:#d9e8db;background:#fcfffb}.ornament-card.collected p{color:#317658;font-weight:800}.ornament-count{position:absolute;right:7px;top:7px;min-width:28px;padding:4px 6px;border-radius:999px;background:#317658;color:white;font-size:11px;font-weight:900;box-shadow:0 2px 6px rgba(0,0,0,.12)}
@media(min-width:600px){.ornament-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.ornament-thumb{height:135px}.ornament-card h2{font-size:12px}}

/* 05 card message editor */
.card-page{background:#f7f2e9}.card-app{max-width:820px;min-height:100vh;padding-bottom:60px}.card-head{text-align:center;padding:14px 0 16px}.card-title{margin:0;color:#317658;font-size:clamp(34px,8vw,48px);letter-spacing:-1px}.card-sub{margin:8px 0 0;color:#81776d;font-size:14px}.card-preview-shell{background:#fff;border:1px solid #eee3d5;border-radius:24px;padding:12px;box-shadow:0 8px 24px rgba(78,61,42,.07)}.card-preview{overflow:hidden;border-radius:18px;border:1px solid #e8dccd;background:#fff;aspect-ratio:3/4;display:grid;grid-template-rows:58% 42%}.card-scene{position:relative;overflow:hidden;background:#dbeaf1}.card-bg-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card-scene-title{position:absolute;left:0;right:0;top:7%;text-align:center;color:#fff;font-family:"Gaegu",cursive;font-size:clamp(22px,5vw,38px);font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.28);letter-spacing:1px}.card-tree-wrap{position:absolute;width:36%;height:72%;left:50%;bottom:1%;transform:translateX(-50%);transform-origin:center bottom}.card-base-tree{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}.card-tree-ornaments{position:absolute;inset:0;pointer-events:none}.card-tree-ornament{position:absolute;object-fit:contain;transform-origin:center center}.card-paper{position:relative;padding:8% 8% 7%;display:flex;flex-direction:column;gap:7%;color:#403b36;background-color:#fffaf0}.card-paper:after{content:"";position:absolute;right:5%;bottom:6%;width:16px;height:16px;border-right:2px solid rgba(65,110,74,.4);border-bottom:2px solid rgba(65,110,74,.4);transform:rotate(12deg);opacity:.55}.card-recipient{font-size:clamp(13px,3vw,20px);font-weight:700}.card-message{flex:1;white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(18px,4.2vw,30px);line-height:1.48}.card-sender{text-align:right;font-size:clamp(13px,3vw,20px);font-weight:700}.paper-cream{background-color:#fffaf0;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(197,165,111,.15) 32px)}.paper-pink{background-color:#fff0f2;background-image:radial-gradient(rgba(218,146,156,.17) 1px,transparent 1px);background-size:18px 18px}.paper-green{background-color:#f1f6e5;background-image:linear-gradient(rgba(108,139,92,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(108,139,92,.09) 1px,transparent 1px);background-size:24px 24px}.paper-blue{background-color:#eef7fc;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,rgba(103,155,190,.14) 31px)}.paper-beige{background-color:#f6ead4;background-image:radial-gradient(rgba(139,104,66,.08) .8px,transparent .8px);background-size:7px 7px}.font-gaegu{font-family:"Gaegu",cursive}.font-hi-melody{font-family:"Hi Melody",cursive}.font-single-day{font-family:"Single Day",cursive}.card-controls{margin-top:14px;display:flex;flex-direction:column;gap:12px}.control-block{background:#fff;border:1px solid #eee3d5;border-radius:22px;padding:14px;box-shadow:0 5px 16px rgba(78,61,42,.05)}.control-title{font-weight:900;color:#4b4640;margin-bottom:11px}.control-title span{color:#317658}.bg-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.bg-option{border:2px solid transparent;background:#faf7f1;border-radius:15px;padding:6px;color:#675f57;font-weight:800;cursor:pointer}.bg-option img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:10px}.bg-option span{display:block;padding:7px 2px 3px;font-size:11px}.bg-option.active{border-color:#317658;background:#f7fbf7}.paper-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.paper-option{border:2px solid transparent;border-radius:14px;padding:5px;background:#fff;cursor:pointer;min-width:0}.paper-option span{display:block;height:66px;border-radius:10px;border:1px solid rgba(90,70,50,.10)}.paper-option b{display:block;font-size:9px;margin-top:5px;color:#625b54;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.paper-option.active{border-color:#317658}.font-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.font-option{border:1px solid #eadfce;background:#fffaf3;border-radius:13px;padding:12px 4px;font-size:20px;color:#504940;cursor:pointer}.font-option.active{border:2px solid #317658;background:#f3f8f2;color:#317658}.tree-toggle{display:flex;align-items:center;gap:9px;font-weight:800;color:#4b4640}.tree-toggle input{width:20px;height:20px;accent-color:#317658}.micro-note{margin:8px 2px 0;color:#978b81;font-size:11px;line-height:1.5}.field-label{display:block;font-size:12px;font-weight:800;color:#6f675f;margin-top:10px}.field-label input,.field-label textarea{display:block;width:100%;margin-top:6px;border:1px solid #e4d8c9;border-radius:14px;padding:12px 13px;background:#fffdf9;color:#3d3833;font:inherit;outline:none}.field-label textarea{resize:vertical;min-height:140px;font-family:"Gaegu",cursive;font-size:20px;line-height:1.45}.field-label input:focus,.field-label textarea:focus{border-color:#6a9b7f;box-shadow:0 0 0 3px rgba(49,118,88,.08)}.message-count{text-align:right;font-size:11px;color:#958b82;margin-top:4px}.export-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.export-btn{border:0;border-radius:18px;min-height:58px;font-weight:900;font-size:16px;cursor:pointer}.save-image{background:#edf4ec;color:#2f7957;border:2px solid #2f7957}.send-email{background:#eb5b52;color:#fff;border-bottom:3px solid #c9423c}.export-btn:disabled{opacity:.55;cursor:wait}.tree-hidden .card-tree-wrap{display:none}
@media(min-width:700px){.bg-options{grid-template-columns:repeat(4,1fr)}.card-preview-shell{padding:16px}.card-controls{gap:14px}.control-block{padding:17px}.paper-option span{height:86px}.card-tree-wrap{width:31%;height:75%}}

/* v06: paper swatches render their own miniature preview */
.paper-option span{position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(100,75,50,.07)}
.paper-option.paper-cream span{background-color:#fffaf0;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 14px,rgba(197,165,111,.22) 15px)}
.paper-option.paper-pink span{background-color:#fff0f2;background-image:radial-gradient(rgba(218,146,156,.23) 1.2px,transparent 1.2px);background-size:13px 13px}
.paper-option.paper-green span{background-color:#f1f6e5;background-image:linear-gradient(rgba(108,139,92,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(108,139,92,.09) 1px,transparent 1px);background-size:16px 16px}
.paper-option.paper-blue span{background-color:#eef7fc;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 14px,rgba(103,155,190,.22) 15px)}
.paper-option.paper-beige span{background-color:#f6ead4;background-image:radial-gradient(rgba(139,104,66,.14) 1px,transparent 1px);background-size:6px 6px}
.paper-option span:after{content:"";position:absolute;inset:5px;border:1px solid rgba(183,144,94,.22);border-radius:7px;pointer-events:none}
.paper-option.paper-pink span:after{border-color:rgba(220,135,151,.28)}
.paper-option.paper-green span:after{border-color:rgba(106,145,93,.24)}
.paper-option.paper-blue span:after{border-color:rgba(104,157,191,.25)}
/* keep the transparent tree visibly separate from any card background */
.card-base-tree{filter:drop-shadow(0 3px 2px rgba(68,80,52,.12))}

/* === 08 Random draw === */
.draw-page{background:#f7f2e9}.draw-app{max-width:620px;min-height:100vh;padding-bottom:54px}.draw-head{text-align:center;padding:16px 8px 12px}.draw-head h1{margin:1px 0 7px;color:#e95850;font-size:clamp(32px,8vw,46px);letter-spacing:-1.5px}.draw-head p:last-child{margin:0;color:#847a70;font-size:13px}.draw-card{background:#fffdf9;border:1px solid #eee2d3;border-radius:26px;padding:16px 16px 22px;box-shadow:0 10px 28px rgba(77,60,40,.08);text-align:center}.draw-token{width:min(330px,86%);margin:0 auto;display:flex;align-items:center;gap:10px;border:2px solid #ebe0cf;border-radius:18px;padding:10px 13px;color:#39352f;font-weight:900}.draw-token .ticket{display:grid;place-items:center;width:38px;height:32px;border-radius:9px;background:#f6c957;color:#fff}.draw-token b{margin-left:auto;font-size:23px;color:#317658}.ratio-note{margin-top:10px;font-size:11px;color:#988e84}.ratio-note i{font-style:normal;margin:0 5px;color:#c9bfb5}.success-dot,.failure-dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:1px}.success-dot{background:#398863}.failure-dot{background:#e86d62}.gift-stage{height:285px;display:grid;place-items:center;position:relative;overflow:hidden}.gift-box{width:154px;height:145px;border:0;background:transparent;position:relative;cursor:pointer;filter:drop-shadow(0 10px 10px rgba(113,70,40,.13));transform-origin:center bottom}.gift-box:disabled{cursor:default;filter:grayscale(.18) drop-shadow(0 8px 8px rgba(113,70,40,.08));opacity:.72}.gift-body{position:absolute;left:17px;bottom:5px;width:120px;height:93px;background:#ef5b53;border-radius:8px 8px 13px 13px;border:4px solid #d74742}.gift-lid{position:absolute;left:8px;top:38px;width:138px;height:34px;background:#f2685f;border:4px solid #d74742;border-radius:9px;z-index:4}.gift-ribbon-v{position:absolute;left:64px;top:39px;width:27px;height:99px;background:#f7ca59;z-index:5;border-left:3px solid #e4af36;border-right:3px solid #e4af36}.gift-ribbon-h{position:absolute;left:13px;top:54px;width:128px;height:22px;background:#f7ca59;z-index:6;border-top:3px solid #e4af36;border-bottom:3px solid #e4af36}.gift-bow{position:absolute;top:4px;width:52px;height:45px;background:#f7ca59;border:4px solid #e4af36;z-index:7}.gift-bow-left{left:27px;border-radius:45px 11px 38px 12px;transform:rotate(18deg)}.gift-bow-right{right:27px;border-radius:11px 45px 12px 38px;transform:rotate(-18deg)}.gift-knot{position:absolute;z-index:9;width:31px;height:31px;border-radius:50%;left:61px;top:20px;background:#f9d46c;border:4px solid #e4af36}.draw-spark{position:absolute;color:#eecb66;font-size:20px;opacity:.6}.sp1{left:16%;top:24%}.sp2{right:17%;top:20%;font-size:13px}.sp3{left:23%;bottom:22%;font-size:12px}.sp4{right:22%;bottom:25%}.gift-stage.drawing .gift-box{animation:giftShake .16s ease-in-out infinite alternate}.gift-stage.drawing .draw-spark{animation:sparkBlink .35s ease-in-out infinite alternate}.gift-stage.popped .gift-box{animation:giftPop .55s cubic-bezier(.2,.9,.2,1) forwards}.burst{position:absolute;left:50%;top:50%;width:10px;height:10px;pointer-events:none;opacity:0}.burst i{position:absolute;font-style:normal;color:#f1c750;font-size:22px}.burst i:nth-child(1){--x:-110px;--y:-95px}.burst i:nth-child(2){--x:-145px;--y:-15px;color:#ef665a}.burst i:nth-child(3){--x:-90px;--y:85px}.burst i:nth-child(4){--x:118px;--y:-95px}.burst i:nth-child(5){--x:150px;--y:-10px;color:#52a77b}.burst i:nth-child(6){--x:98px;--y:88px}.burst i:nth-child(7){--x:-20px;--y:-135px}.burst i:nth-child(8){--x:18px;--y:118px;color:#ef665a}.gift-stage.popped .burst{opacity:1}.gift-stage.popped .burst i{animation:burstOut .6s ease-out forwards}.draw-guide{min-height:22px;margin:-2px 0 11px;font-size:13px;font-weight:800;color:#776e66}.draw-main-btn{width:min(360px,92%);border:0;border-radius:17px;background:#eb5b52;color:#fff;font-size:16px;font-weight:900;min-height:54px;box-shadow:0 4px 0 #c94740;cursor:pointer}.draw-main-btn:disabled{opacity:.6;box-shadow:none;cursor:default}.draw-result{margin-top:14px;background:#fff;border:1px solid #eee2d3;border-radius:26px;padding:20px 16px;text-align:center;box-shadow:0 8px 24px rgba(77,60,40,.07);transform:translateY(8px);opacity:0;transition:.28s ease}.draw-result.show{transform:none;opacity:1}.result-badge{display:inline-block;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:900}.success-result .result-badge{background:#e4f2e8;color:#2f7957}.failure-result .result-badge{background:#fff0ec;color:#cb574e}.result-image-wrap{width:190px;height:190px;margin:10px auto 4px;display:grid;place-items:center}.result-image-wrap img{max-width:100%;max-height:100%;object-fit:contain}.draw-result h2{margin:3px 0 6px;font-size:23px;color:#413b35}.draw-result p{margin:0;color:#8d8278;font-size:12px}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.result-link{min-height:47px;border-radius:14px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:13px;font-weight:900;box-sizing:border-box}.collection-link{color:#317658;border:2px solid #317658;background:#f7fbf7}.again-link{border:0;background:#eb5b52;color:#fff}.again-link:disabled{background:#d8d1c8;color:#fff}.draw-footnote{text-align:center;color:#a0968d;font-size:10px;margin:12px 8px}.draw-page .eyebrow{margin:0;color:#c39c52;font-size:10px;font-weight:900;letter-spacing:1.6px}.draw-page .draw{display:flex;text-decoration:none}.actions .draw{text-decoration:none;box-sizing:border-box}
@keyframes giftShake{from{transform:translateX(-7px) rotate(-3deg)}to{transform:translateX(7px) rotate(3deg)}}
@keyframes sparkBlink{from{opacity:.2;transform:scale(.8)}to{opacity:1;transform:scale(1.35)}}
@keyframes giftPop{0%{transform:scale(1)}45%{transform:scale(1.18)}100%{transform:scale(.05);opacity:0}}
@keyframes burstOut{0%{transform:translate(0,0) scale(.2);opacity:1}100%{transform:translate(var(--x),var(--y)) rotate(180deg) scale(1);opacity:0}}
@media(max-width:480px){.gift-stage{height:260px}.gift-box{transform:scale(.92)}.result-image-wrap{width:165px;height:165px}}

/* AdSense: bottom responsive ad area */
.adsense-area{width:min(100%,820px);margin:18px auto 26px;padding:8px 12px;box-sizing:border-box;text-align:center;min-height:90px}
.adsense-area .adsbygoogle{width:100%;min-height:90px}
@media (max-width:600px){.adsense-area{margin:12px auto 18px;padding:6px 10px;min-height:70px}.adsense-area .adsbygoogle{min-height:70px}}
/* === 10 Storybook gift visual === */
.gift-box{width:190px;height:190px;display:grid;place-items:center}
.gift-storybook-image{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;border-radius:18px}
@media(max-width:480px){.gift-box{width:176px;height:176px}}

/* === 11 Home draw button responsive fix (mobile + desktop) === */
.actions .draw{
  width:min(88%,460px);
  min-height:74px;
  height:auto;
  margin:16px auto 0;
  padding:12px 58px 12px 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  text-align:center;
  line-height:1.18;
  white-space:nowrap;
  text-decoration:none;
  box-sizing:border-box;
  font-size:clamp(20px,5.5vw,27px);
}
.actions .draw span{
  flex:0 0 auto;
  margin-right:10px;
  line-height:1;
  font-size:1.08em;
}
.actions .draw i{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  float:none;
  margin:0;
  font-size:34px;
  line-height:1;
  font-style:normal;
}
@media(max-width:480px){
  .actions .draw{
    width:92%;
    min-height:66px;
    padding:10px 48px 10px 16px;
    border-radius:18px;
    font-size:clamp(19px,6vw,23px);
  }
  .actions .draw i{right:15px;font-size:30px}
}
@media(min-width:800px){
  .actions .draw{min-height:76px}
}

/* === 12 Tree decorator === */
.tree{position:relative}.home-tree-ornaments{position:absolute;inset:0;pointer-events:none}.home-tree-ornament{position:absolute;height:auto;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(50,40,30,.12))}.decorate-shortcut{display:flex;width:min(68%,330px);min-height:43px;margin:2px auto 7px;align-items:center;justify-content:center;text-decoration:none;border:2px solid #5d9676;border-radius:999px;background:#f3faf5;color:#317658;font-weight:900;font-size:14px}
.decorate-page{background:#f7f2e9}.decorate-app{max-width:980px;min-height:100vh}.decorate-head{text-align:center;padding:14px 8px 18px}.decorate-head h1{font-size:clamp(34px,7vw,48px);color:#317658;letter-spacing:-2px}.decorate-head>p:last-child{max-width:650px;margin:8px auto 0;color:#81766d;font-size:13px;line-height:1.65}.decorate-workspace{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:18px;align-items:start}.tree-editor-panel,.decorate-inventory-panel{background:#fff;border:1px solid #eadfce;border-radius:26px;box-shadow:0 10px 28px rgba(77,60,40,.07);padding:17px}.decorate-tree-stage{position:relative;width:min(100%,520px);aspect-ratio:1/1.18;margin:0 auto;border-radius:24px;background:radial-gradient(circle at 50% 48%,#fff 0,#fff 44%,#faf6ee 72%,#f5efe5 100%);overflow:hidden;touch-action:none;user-select:none}.decorate-base-tree{position:absolute;inset:5% 7% 3%;width:86%;height:92%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 8px 7px rgba(78,73,55,.12))}.decorate-layer{position:absolute;inset:5% 7% 3%}.placed-ornament{position:absolute;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;transform-origin:center;z-index:2}.placed-ornament:active{cursor:grabbing}.placed-ornament img{display:block;width:100%;height:auto;max-height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(50,40,30,.18))}.placed-ornament.selected:after{content:"";position:absolute;inset:-5px;border:2px dashed #e95850;border-radius:12px;transform:rotate(calc(-1 * var(--r, 0deg)));pointer-events:none}.decorate-hint{text-align:center;color:#9a8e83;font-size:11px;margin:9px 0}.selected-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.selected-tools button,.tree-save-actions button{border:0;border-radius:13px;min-height:43px;font-weight:850;cursor:pointer}.selected-tools button{background:#f3efe8;color:#595149}.selected-tools .danger{background:#fff0ed;color:#c95b52}.tree-save-actions{display:grid;grid-template-columns:.75fr 1.25fr;gap:9px;margin-top:10px}.clear-tree-btn{background:#f2eee8;color:#776e65}.save-tree-btn{background:#317658;color:#fff;box-shadow:0 3px 0 #225d43}.save-tree-btn:disabled{opacity:.6}.tree-save-status{text-align:center;color:#7f756d;font-size:11px;line-height:1.5;min-height:34px;margin:9px 0 0}.inventory-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:5px}.inventory-title-row h2{margin:1px 0 0;color:#423d38;font-size:24px}.inventory-title-row a{font-size:12px;font-weight:900;color:#317658;text-decoration:none;border:1px solid #a8c9b6;border-radius:999px;padding:7px 10px;background:#f5fbf7}.inventory-guide{margin:8px 0 13px;color:#8e837a;font-size:11px;line-height:1.55}.decorate-inventory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:620px;overflow:auto;padding:2px}.inventory-ornament{border:1px solid #eadfce;background:#fffdf9;border-radius:16px;padding:8px 6px 9px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;color:#4b4540}.inventory-ornament:disabled{opacity:.35;cursor:default;filter:grayscale(.5)}.inventory-img{height:76px;width:100%;display:grid;place-items:center}.inventory-img img{max-width:100%;max-height:72px;object-fit:contain}.inventory-ornament strong{font-size:10px;line-height:1.25;text-align:center;min-height:25px}.inventory-ornament small{font-size:9px;color:#8f857c}.inventory-empty{grid-column:1/-1;padding:36px 10px;text-align:center;border:1px dashed #dacdbd;border-radius:18px;color:#8d8177;font-size:12px;line-height:1.8}.inventory-empty a{color:#317658;font-weight:900}
@media(max-width:760px){.decorate-app{padding-left:12px;padding-right:12px}.decorate-workspace{grid-template-columns:1fr}.decorate-inventory-panel{order:2}.decorate-tree-stage{width:min(100%,460px)}.decorate-inventory{grid-template-columns:repeat(4,minmax(0,1fr));max-height:none}.inventory-img{height:62px}.inventory-img img{max-height:58px}}
@media(max-width:480px){.decorate-head{padding-top:10px}.decorate-head h1{font-size:34px}.decorate-workspace{gap:12px}.tree-editor-panel,.decorate-inventory-panel{padding:12px;border-radius:21px}.selected-tools{grid-template-columns:repeat(2,1fr)}.decorate-inventory{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.inventory-ornament{padding:6px 4px}.inventory-img{height:58px}.inventory-img img{max-height:54px}.tree-save-actions{grid-template-columns:1fr 1.35fr}}
