:root{--cream: #FFF4DE;--brown: #4B2D25;--red: #A93238;--green: #284C40;--yellow: #E9C776;--milk: #B78258}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--brown);font-family:Arial,Apple SD Gothic Neo,Malgun Gothic,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--green);outline-offset:4px}button{border:0;background:none;min-height:44px}h1,h2,h3,p{margin:0}p{line-height:1.65}header.review{padding:24px 4vw;border-bottom:1px solid #4b2d2526;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.eyebrow{font:12px monospace;letter-spacing:2px;text-transform:uppercase}.review strong{font-size:20px}.tools{display:flex;gap:6px;flex-wrap:wrap}.tools button,.tools select{border:1px solid #4b2d2544;padding:9px 13px;background:var(--cream);border-radius:3px}.tools button.active{background:var(--brown);color:var(--cream)}.intro{padding:44px 4vw 34px;max-width:1050px}.intro h1{font-size:clamp(32px,4vw,54px);letter-spacing:-2px;margin:13px 0}.intro p{max-width:730px;font-size:15px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 26px;padding:0 4vw 60px;max-width:1500px;margin:auto}.sample>h2{font-size:14px;margin-bottom:13px;font-weight:500}.sample>p{font-size:12px;margin-top:12px;line-height:1.7}.screen{position:relative;background:var(--cream);border:1px solid #4b2d2538;min-height:745px;overflow:hidden;container-type:inline-size}.apphead{height:72px;padding:16px 22px;display:flex;justify-content:space-between;align-items:center}.brand{font-family:Georgia,serif;font-weight:700;font-size:23px;letter-spacing:-1px}.brand small{display:block;font:8px monospace;letter-spacing:3px;margin-top:4px}.language{font-size:11px;border-bottom:1px solid var(--brown)}.content{padding:16px 22px 25px;text-align:center;max-width:500px;margin:auto}.kicker{font:11px monospace;letter-spacing:2px;color:var(--green);margin:12px 0}.content h2{font-size:26px;line-height:1.4;letter-spacing:-1px;margin:12px 0}.sub{font-size:13px;margin:8px 0 22px}.primary,.secondary{width:100%;padding:14px 12px;min-height:49px;font-size:14px;font-weight:700;border:2px solid var(--brown);box-shadow:0 3px 0 var(--brown);background:var(--red);color:var(--cream);margin:9px 0}.secondary{background:var(--cream);color:var(--brown);box-shadow:none}.textbtn{font-size:12px;text-decoration:underline;text-underline-offset:4px;margin-top:12px}.fine{font-size:10px;line-height:1.7;margin-top:18px;color:var(--green)}.star{width:27px;height:27px;display:inline-block;background:var(--yellow);clip-path:polygon(40% 0,60% 0,60% 30%,80% 30%,80% 40%,100% 40%,100% 60%,70% 60%,70% 80%,60% 80%,60% 100%,40% 100%,40% 70%,20% 70%,20% 60%,0 60%,0 40%,30% 40%,30% 20%,40% 20%)}.box{background:var(--brown);padding:12px;border:4px solid var(--brown);position:relative;margin:0 auto 18px;max-width:440px}.ribbon{background:var(--red);color:var(--cream);font:12px Georgia,serif;letter-spacing:3px;padding:13px 4px;margin:-12px -12px 12px;display:flex;justify-content:space-evenly;align-items:center}.ribbon .star{width:13px;height:13px}.grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.drawer{background:var(--red);color:var(--cream);aspect-ratio:1;position:relative;border:1px solid var(--milk);min-height:44px;font:23px Georgia,serif;padding:6px 0 0;transition:transform .16s}.drawer:before{content:"";position:absolute;top:-1px;left:calc(50% - 6px);width:12px;height:5px;background:var(--brown)}.drawer:nth-child(5n+2),.drawer:nth-child(5n+4){background:var(--green)}.drawer.today{background:var(--yellow);color:var(--brown);outline:2px solid var(--cream);outline-offset:1px}.drawer.past{background:var(--milk);color:var(--brown)}.drawer small{font:8px Arial;position:absolute;bottom:3px;left:0;right:0}.drawer:hover{transform:translateY(-2px)}.base{font:9px monospace;color:var(--cream);letter-spacing:2px;padding-top:13px}.tabs{display:flex;gap:4px;justify-content:center;margin:15px 0 20px}.tabs button{min-width:92px;border-bottom:2px solid #4b2d2533;font-size:13px}.tabs button.on{border-color:var(--red);color:var(--red);font-weight:700}.ad{border:1px dashed #4b2d2540;font:9px monospace;letter-spacing:2px;color:var(--brown);padding:22px 8px;margin:25px auto 6px;max-width:320px}.mini{width:255px;margin:30px auto;transform:rotate(-3deg)}.mini .drawer{min-height:0;font-size:18px;pointer-events:none}.mini .grid{gap:5px}.mini .ribbon{font-size:10px}.mini .box{padding:9px}.mini .ribbon{margin:-9px -9px 9px}.sprig{display:flex;justify-content:center;align-items:center;gap:12px;margin:22px}.icon{width:54px;height:54px;image-rendering:pixelated}.largeicon .icon{width:92px;height:92px}.form{text-align:left;margin:25px 0}.form label{display:block;font-size:13px;margin:15px 0 9px;font-weight:700}input,textarea{width:100%;border:1px solid var(--milk);border-radius:0;background:transparent;color:var(--brown);padding:15px;font-size:14px}textarea{height:132px;resize:vertical;line-height:1.6}.counter{font-size:10px;text-align:right;margin:6px 0}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.choice{border:1px solid #b7825870;display:flex;align-items:center;flex-direction:column;padding:8px 3px;font-size:11px;position:relative}.choice.selected{border:2px solid var(--red);background:#e9c77638}.choice.selected:after{content:"✓";position:absolute;top:3px;right:5px;color:var(--red)}.note{border:1px solid var(--milk);padding:24px 20px;text-align:left;line-height:1.9;font-size:15px;margin:20px 0;background:#e9c77618;min-height:164px}.note .from{font-size:11px;text-align:right;margin-top:22px;color:var(--green)}.paging{display:flex;justify-content:center;align-items:center;gap:22px;font-size:12px}.paging button{border:1px solid var(--milk);width:44px}.stamp{font:10px monospace;letter-spacing:2px;border:1px solid var(--green);color:var(--green);padding:6px 9px;display:inline-block;margin-bottom:14px}.empty{padding:60px 0 40px}.shade{position:absolute;top:72px;right:0;bottom:0;left:0;background:#4b2d25b8;z-index:2;display:flex;align-items:center;justify-content:center;padding:22px}.bubble{background:var(--cream);border:3px solid var(--brown);padding:24px;width:100%;text-align:center;box-shadow:5px 5px 0 var(--brown)}.bubble h3{font-size:19px;margin:14px 0}.bubble p{font-size:13px}.spot{width:60px;margin:0 auto 18px}.spot .drawer{width:60px}.success{padding-top:68px}.url{font:12px monospace;overflow-wrap:anywhere;background:#e9c77630;padding:15px;margin:14px 0}.private{margin-top:24px;padding-top:20px;border-top:1px dashed var(--milk);text-align:left}.private h3{font-size:13px}.private p{font-size:11px;margin-top:8px}.solo{padding:25px 3vw 65px}.solo .screen{max-width:1140px;margin:auto;min-height:790px}.solo.mobile .screen{max-width:390px}.desktop-layout{display:block}.spec{padding:40px 5vw 70px;max-width:1200px;margin:auto}.spec h2{font-size:28px;margin:30px 0 20px}.swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.swatch{height:100px;padding:12px;display:flex;flex-direction:column;justify-content:end;border:1px solid #4b2d2522;font:11px monospace}.spec table{border-collapse:collapse;width:100%;font-size:13px;line-height:1.7}.spec td,.spec th{padding:14px 10px;border-bottom:1px solid #4b2d2522;text-align:left}.spec .icons{display:flex;gap:20px;flex-wrap:wrap}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);background:var(--brown);color:var(--cream);padding:14px 24px;z-index:20;font-size:13px}.hidden{display:none!important}@container (min-width:700px){.desktop-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;max-width:960px;margin:65px auto;padding:0 30px}.desktop-layout .content{padding:0;width:100%}.desktop-layout .mini{width:360px}.desktop-layout h2{font-size:40px}.apphead{padding:22px 42px;height:90px}.desktop-layout .hero-copy{text-align:left}.desktop-layout .primary{max-width:320px}.solo .screen .calendar-layout{display:grid;grid-template-columns:280px 440px;gap:70px;max-width:850px;margin:50px auto;text-align:left}.calendar-layout .content{padding:0;width:100%}.calendar-layout .calendar-intro{padding-top:60px}.calendar-layout h2{font-size:34px}}@media(max-width:1100px){.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.gallery{grid-template-columns:1fr;padding:0 14px 40px;max-width:430px}.intro{padding:30px 20px}.review{padding:16px}.screen{min-height:720px}.swatches{grid-template-columns:repeat(2,1fr)}.spec{padding:20px}.spec td{padding:10px 5px}.solo{padding:16px 0}.tools{gap:4px}.tools button,.tools select{font-size:12px;padding:8px}.intro h1{letter-spacing:-1px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}body{background:#284c40;background-image:radial-gradient(#fff4de30 1px,transparent 1px);background-size:24px 24px}.review{background:var(--cream);border-bottom:4px solid var(--brown);position:relative;z-index:3}.intro{color:var(--cream);padding-top:32px}.intro h1{font-size:38px;letter-spacing:-1px}.intro p{opacity:.85}.gallery{gap:38px 26px}.sample>h2{color:var(--cream);font-weight:700;font-family:monospace}.screen{border:4px solid var(--brown);box-shadow:7px 7px #4b2d2580;background-color:var(--cream);background-image:radial-gradient(#b7825824 1px,transparent 1px);background-size:6px 6px;isolation:isolate}.apphead{background:var(--red);color:var(--cream);height:56px;padding:8px 14px;border-bottom:4px solid var(--brown);gap:8px}.brand{font:700 16px monospace;letter-spacing:-.6px;display:flex;align-items:center;gap:8px}.brand .icon{width:25px;height:25px}.brand small{display:none}.apphead .brand{color:inherit;text-decoration:none;cursor:pointer}.apphead .brand:hover{opacity:.85}.apphead .brand:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}.language{border:3px solid var(--brown);background:var(--cream);color:var(--brown);min-height:32px;padding:4px 8px;font:700 11px monospace;box-shadow:2px 2px 0 var(--brown)}.content{padding:18px 18px 24px}.content h2{font-size:25px;font-weight:900;letter-spacing:-.8px;line-height:1.35}.kicker{display:none}.sub{font-size:13px;margin:10px 0 18px}.primary,.secondary{border:3px solid var(--brown);box-shadow:4px 4px 0 var(--brown);font-weight:800;border-radius:0}.primary:active,.secondary:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--brown)}.secondary{background:var(--cream)}.tools button,.tools select{border:2px solid var(--brown);border-radius:0;font-weight:700}.tabs{gap:0;margin:0 0 20px;display:grid;grid-template-columns:1fr 1fr;border:3px solid var(--brown);box-shadow:3px 3px 0 var(--brown)}.tabs button{border:0;font-weight:700;background:var(--cream);font-size:15px}.tabs button+button{border-left:3px solid var(--brown)}.tabs button.on{background:var(--red);color:var(--cream)}.box{border:4px solid var(--brown);padding:10px;background:var(--brown);box-shadow:5px 5px #4b2d2540}.ribbon{margin:-10px -10px 12px;padding:10px 2px;background:var(--green);font:700 10px monospace;letter-spacing:1px;border-bottom:3px solid var(--brown)}.grid{gap:7px}.drawer{font:700 22px monospace;border:2px solid var(--milk);box-shadow:inset -3px -3px #4b2d2540,inset 3px 3px #fff4de25;min-height:46px}.drawer:before{height:6px;width:12px}.drawer.today{outline:3px solid var(--cream);outline-offset:0}.base{font-size:9px}.mini{width:270px;transform:none;margin:12px auto 18px}.mini .ribbon{margin:-10px -10px 12px}.mini .drawer{font-family:monospace}.mini .box{padding:10px}.snow-scene{height:104px;position:relative;background:var(--green);border:4px solid var(--brown);border-bottom:0;max-width:440px;margin:0 auto;overflow:hidden}.snow-scene:after{content:"";height:8px;position:absolute;bottom:0;left:0;right:0;background:var(--cream);clip-path:polygon(0 0,12% 0,12% 50%,23% 50%,23% 0,51% 0,51% 50%,72% 50%,72% 0,100% 0,100% 100%,0 100%)}.snow-scene svg{width:100%;height:100%;position:relative;z-index:1}.pixel-snow{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:2}.pixel-snow i{position:absolute;top:-10px;width:4px;height:4px;background:var(--cream);animation:snowfall var(--speed) linear infinite;animation-delay:var(--delay);left:var(--left);opacity:.9}.pixel-snow i:nth-child(3n){width:3px;height:3px;opacity:.55}.pixel-snow i:nth-child(7n){width:6px;height:6px}.ambient{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0}.ambient .pixel-snow i{animation-name:ambientSnow;opacity:.35}.review,.intro,.gallery,.solo,.spec{position:relative}.spec{background:var(--cream);border:4px solid var(--brown);margin-top:30px;box-shadow:7px 7px #4b2d2580}.solo>.screen{background-color:var(--cream)}.solo>.screen .content{max-width:460px}.choices{gap:9px}.choice{border:2px solid var(--brown);background:var(--cream);box-shadow:2px 2px 0 var(--brown)}.choice.selected{border:3px solid var(--red);background:var(--yellow);box-shadow:2px 2px 0 var(--red)}.form input,.form textarea{border:3px solid var(--brown);background:var(--cream)}.note{border:3px solid var(--brown);background:var(--cream);box-shadow:5px 5px 0 var(--milk)}.paging button{border:3px solid var(--brown);background:var(--cream)}.stamp{border:2px solid var(--brown);background:var(--yellow);color:var(--brown);font-weight:700}.shade{top:56px;right:0;bottom:0;left:0;background:#4b2d25b5}.bubble{box-shadow:6px 6px 0 var(--brown)}.success .largeicon{animation:giftHop 2.6s steps(2,end) infinite}.fine{font-size:11px}.ad{background:#fff4de90}.sprite-title{height:33px;max-width:100%;display:block;margin:15px auto 12px}.motion-toggle{font-size:11px!important}.no-motion *{animation-play-state:paused!important}.mini .snow-scene{height:90px}.hero-copy .fine{margin-top:12px}.desktop-layout{display:flex;flex-direction:column}.desktop-layout .hero-copy{order:2}.desktop-layout>.content:last-child{order:1;padding-bottom:0}.desktop-layout .hero-copy h2{margin-top:0}.desktop-layout>.content:last-child>.sprig,.desktop-layout>.content:last-child>.fine{display:none}.desktop-layout .hero-copy{padding-top:0}.content .sprig{margin:20px}.empty,.success{padding-top:58px}.content:has(>.form){padding-top:26px}.snow-help{font:10px monospace;text-align:center;position:absolute;top:12px;left:0;right:0;color:var(--cream);z-index:2;letter-spacing:2px}@keyframes snowfall{0%{transform:translateY(-8px)}to{transform:translate(24px,130px)}}@keyframes ambientSnow{0%{transform:translateY(-10px)}to{transform:translate(60px,110vh)}}@keyframes giftHop{0%,75%,to{transform:translateY(0)}85%{transform:translateY(-8px)}}@container (min-width:700px){.apphead{height:56px;padding:8px 22px}.desktop-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin:65px auto}.desktop-layout .hero-copy{order:0}.desktop-layout>.content:last-child{order:1}.desktop-layout .mini{width:350px}.desktop-layout .mini .snow-scene{height:120px}.solo .screen .calendar-layout{grid-template-columns:270px 420px;gap:60px;margin:45px auto}.calendar-layout .calendar-intro{padding-top:110px}.solo .screen .owner-layout{align-items:start}.solo .screen .owner-layout .calendar-intro{padding-top:0;margin-top:0;align-self:start}.owner-layout .calendar-intro h2{margin-top:0}.calendar-layout h2{font-size:35px}.desktop-layout h2{font-size:36px}}@media(max-width:650px){.intro h1{font-size:29px}.screen{min-height:740px}.gallery{padding-left:12px;padding-right:18px}.content{padding-left:14px;padding-right:14px}.grid{gap:6px}.drawer{min-height:44px}.spec{margin:20px 12px}.solo{padding:16px 10px}.review .tools{gap:5px}.mini{width:250px}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}.drawer,.mini .drawer{font-family:ChocoPixel,monospace;font-size:21px;font-weight:400}.drawer small{font-family:Arial,sans-serif}.head-actions{display:flex;align-items:center;gap:8px}.auth-wrap{max-width:430px;margin:36px auto 50px;padding:0 18px;text-align:center}.auth-wrap>.snow-scene{height:118px;max-width:430px}.auth-panel{background:var(--cream);border:4px solid var(--brown);box-shadow:6px 6px #4b2d2540;padding:27px 23px 23px}.auth-gift{position:relative;display:inline-flex;align-items:center;justify-content:center;width:68px;height:65px;margin:0 auto 12px}.auth-gift .icon{width:60px;height:60px;image-rendering:pixelated;animation:giftHop 2.6s steps(2,end) infinite}.auth-spark{position:absolute;right:-11px;top:-6px;color:var(--red);font-size:24px;animation:giftHop 2s steps(2,end) infinite}.auth-tag{font:700 10px monospace;letter-spacing:2px;color:var(--green);margin:0 0 14px}.auth-panel h2{font-size:clamp(21px,4.5vw,27px);line-height:1.4;letter-spacing:-.7px;overflow-wrap:break-word}.auth-panel .sub{margin:11px 0 27px;font-size:13px}.auth-buttons{display:grid;gap:11px}.oauth-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:54px;border:3px solid var(--brown);box-shadow:4px 4px 0 var(--brown);font-size:14px;font-weight:800;transition:transform .15s steps(2,end),box-shadow .15s steps(2,end)}.oauth-button svg{flex-shrink:0}.oauth-button:hover:not(:disabled){transform:translate(-1px,-2px);box-shadow:5px 6px 0 var(--brown)}.oauth-button:active:not(:disabled){transform:translate(3px,3px);box-shadow:1px 1px 0 var(--brown)}.oauth-button:disabled{opacity:.6;cursor:progress}.oauth-kakao{background:#fee500;color:#3b2521}.oauth-google{background:#fff;color:var(--brown)}.auth-error{font-size:12px;color:var(--red);font-weight:700;background:#a9323814;border:2px solid var(--red);padding:10px;margin-top:18px;text-align:left}.auth-hint{font-size:12px;color:var(--red);margin:17px 0 0}.auth-fine{font-size:11px;color:var(--green);margin-top:24px}.auth-panel .textbtn{font-size:12px;margin-top:12px}.auth-wrap>.fine{margin-top:28px;color:var(--green)}.auth-loading{padding-top:100px!important}.auth-loading .icon{animation:giftHop 2.6s steps(2,end) infinite}@media(max-width:650px){.auth-wrap{margin-top:28px}.auth-panel{padding:24px 16px}.auth-wrap>.snow-scene{height:100px}.apphead{padding:8px 10px}.head-actions{gap:5px}.head-actions .language{font-size:10px;padding:4px 6px}}@media(prefers-reduced-motion:reduce){.auth-gift .icon,.auth-spark,.auth-loading .icon{animation:none}}.solo>.shade{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow-y:auto}.solo>.shade .bubble{width:min(100%,440px);max-height:calc(100dvh - 32px);margin:auto;overflow-y:auto;padding:clamp(20px,5vw,32px)}button:disabled{cursor:not-allowed;opacity:.68}.auth-error,.url{overflow-wrap:anywhere}.share-actions{display:grid;gap:10px;margin:16px 0}.share-actions button{width:100%}.kakao-share{background:#fee500;border:2px solid #4b2b25;box-shadow:3px 3px #4b2b25;color:#3c1e1e;cursor:pointer;font:inherit;font-weight:700;padding:13px 18px}.kakao-share:hover{background:#ffeb43}.kakao-share:focus-visible{outline:3px solid #4b2b25;outline-offset:3px}.calendar-title-line{display:block}.owner-share{margin:28px 0 12px;padding:18px 14px 16px;border:2px solid var(--brown);background:#fff4de;box-shadow:4px 4px #4b2d2526}.share-heading{margin:0;font-size:18px;line-height:1.4}.share-description{margin:6px 0 14px;font-size:12px;opacity:.8}.share-link{display:flex;align-items:center;gap:8px;min-width:0;padding:11px 12px;border:1px dashed #a88b6a;background:#f9eacd;color:var(--brown);font:12px monospace}.share-link-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.share-actions{gap:12px;margin:14px 0 0}.share-actions .kakao-share,.share-actions>.share-utility{min-height:52px}.share-utilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.share-utilities .share-utility,.share-utilities .kakao-share{width:100%;min-width:0;min-height:42px;padding:9px 5px;border:1px solid #9d7c64;box-shadow:none;background:transparent;color:var(--brown);font-family:inherit;font-size:12px;font-weight:700;cursor:pointer}.share-utilities .kakao-share{background:#fee500;border-color:#b69a28}.share-utilities .share-utility:hover{background:#f7e5c5}.share-utilities button:focus-visible{outline:2px solid var(--brown);outline-offset:2px}.owner-extra{text-align:center;margin:20px 0 28px}.owner-extra .textbtn{display:inline-block;width:auto;margin:0;padding:6px 8px;border:0;box-shadow:none;background:transparent;color:var(--brown);font-size:12px;font-weight:700;opacity:.8;cursor:pointer}.timezone-setting{margin:20px 0 24px;text-align:left}.timezone-setting label{display:block;margin-bottom:8px;font-weight:800}.timezone-setting select{display:block;width:100%;max-width:100%;padding:12px 10px;border:3px solid var(--brown);border-radius:0;background:var(--cream);color:var(--brown);font:inherit;cursor:pointer}.timezone-setting select:focus-visible{outline:3px solid var(--green);outline-offset:2px}.timezone-setting .fine{margin-top:10px;line-height:1.6}.share-link{gap:0;padding:0 0 0 14px}.share-link-url{flex:1;padding:13px 0;font-size:13px}.share-copy-icon{display:grid;flex:0 0 48px;width:48px;min-height:46px;margin-left:10px;place-items:center;border:0;border-left:1px dashed #a88b6a;background:#f4dbad;color:var(--brown);cursor:pointer}.share-copy-icon:hover{background:#ebcb91}.share-copy-icon:focus-visible{outline:3px solid var(--brown);outline-offset:-3px}.share-utilities{display:block}.owner-extra{margin:24px 0 30px}.owner-extra .new-calendar-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:min(100%,360px);min-height:54px;padding:12px 18px;border:2px solid var(--brown);background:#fff4de;color:var(--brown);box-shadow:4px 4px 0 var(--brown);font:inherit;font-size:15px;font-weight:800;cursor:pointer}.owner-extra .new-calendar-button:hover{background:#f9e6bd;transform:translateY(-1px)}.owner-extra .new-calendar-button:focus-visible{outline:3px solid var(--brown);outline-offset:5px}.owner-share .share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}.owner-share .share-actions>button{width:100%;min-width:0;min-height:56px;padding:12px 8px;border:2px solid var(--brown);border-radius:0;box-shadow:3px 3px 0 var(--brown);background:#fff4de;color:var(--brown);font:inherit;font-size:14px;font-weight:800;line-height:1.4;cursor:pointer}.owner-share .share-actions>button:hover{background:#f9e6bd}.owner-share .share-actions>button:focus-visible{outline:3px solid var(--brown);outline-offset:5px}.calendar-layout .drawer.past{background:#b7a994;color:#473a32;border-color:#877666;box-shadow:inset -3px -3px #76685840,inset 3px 3px #fff4de35}.calendar-layout .drawer.today{background:var(--yellow);color:var(--brown);border-color:var(--cream);outline:3px solid var(--cream);outline-offset:0}.calendar-layout .drawer:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.calendar-layout .drawer.today:focus-visible{outline-color:var(--red)}.empty-share-panel{margin:28px 0 24px;padding:20px 16px;border:2px solid var(--brown);background:#fff4de;box-shadow:4px 4px #4b2d2526;text-align:left}.empty-share-heading{margin:0 0 14px;color:var(--brown);font-size:15px;line-height:1.5}.empty-share-panel .share-link{margin:0}.empty-share-panel .share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}.empty-share-panel .share-actions>button{width:100%;min-width:0;min-height:54px;padding:10px 6px;border:2px solid var(--brown);border-radius:0;box-shadow:3px 3px 0 var(--brown);background:#fff4de;color:var(--brown);font:inherit;font-size:13px;font-weight:800;line-height:1.4;cursor:pointer}.empty-share-panel .share-actions>button:hover{background:#f9e6bd}.empty-share-panel .share-actions>button:focus-visible{outline:3px solid var(--brown);outline-offset:5px}@media(max-width:380px){.empty-share-panel{padding:16px 10px}.empty-share-panel .share-actions{gap:8px}.empty-share-panel .share-actions>button{font-size:12px}}.empty-drawer-date{width:fit-content;margin:12px auto 10px;padding:0;color:#806b5b;font-size:14px;font-weight:600;line-height:1.5}.form label:has(>input[name=nickname]){margin-top:15px}.form label:has(>input[name=nickname]) input{margin-top:12px}.timezone-clock{display:flex;flex-direction:column;align-items:center;gap:7px;padding:20px 12px;background:#fff4de;border:2px solid var(--brown);color:var(--brown)}.timezone-clock>span{font-size:12px}.timezone-clock strong{font-size:28px;font-weight:900}.timezone-change{width:100%;margin-top:10px;padding:12px;border:2px solid var(--brown);background:var(--cream);color:var(--brown);font:inherit;font-weight:800;cursor:pointer}.timezone-search-panel{margin-top:14px}.timezone-search-panel[hidden]{display:none}.timezone-search-panel input{box-sizing:border-box;width:100%;padding:12px;border:2px solid var(--brown);background:var(--cream);color:var(--brown);font:inherit}.timezone-results{max-height:260px;overflow-y:auto;border:1px solid #b49c7e}.timezone-result{display:flex;width:100%;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:0;border-bottom:1px solid #e0cdb0;background:var(--cream);color:var(--brown);font:inherit;text-align:left;cursor:pointer}.timezone-result:hover,.timezone-result:focus-visible{background:#f4dbad}.timezone-result small{flex-shrink:0;opacity:.75}.calendar-layout .drawer.gift-unavailable,.calendar-layout .drawer.gift-unavailable:hover,.calendar-layout .drawer.gift-unavailable:active{cursor:not-allowed;opacity:.5;filter:grayscale(.45);transform:none;box-shadow:none}.visitor-gift-hint{margin:14px auto 4px;max-width:620px;text-align:center;color:var(--brown);font-size:13px;line-height:1.6;opacity:.8}.mobile-only-break{display:none}@media(max-width:640px){.landing-login-hint{text-align:center;line-height:1.65;overflow-wrap:keep-all;word-break:keep-all}.landing-login-hint .mobile-only-break{display:block}}.write-title-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;width:100%;margin:12px 0}.write-title-row h2{grid-column:2;grid-row:1;margin:0;text-align:center;text-wrap:balance}.write-back{display:inline-grid;grid-column:1;grid-row:1;place-items:center;width:40px;min-height:40px;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;color:var(--brown);cursor:pointer;transition:background-color .15s ease}.write-back:hover{background:#4b2d2510}.write-back:focus-visible{outline:2px solid var(--green);outline-offset:2px}.write-back svg{display:block}@media(max-width:420px){.write-title-row{grid-template-columns:34px minmax(0,1fr) 34px}.write-back{width:34px;min-height:40px}.write-title-row h2{font-size:clamp(20px,5.7vw,26px)}}.owner-date-title .drawer-date-arrow[data-action=drawer-next]{grid-column:3;grid-row:1;justify-self:end}.owner-date-title .drawer-date-arrow[data-action=drawer-prev]{justify-self:start}.owner-date-title .drawer-date-arrow:disabled,.owner-date-title .drawer-date-arrow:disabled:hover{opacity:.2;cursor:default;background:transparent;box-shadow:none}.drawer-close-spacing{margin-top:28px}.drawer-message-count{text-align:center;margin:4px 0 24px;color:var(--green);font-size:14px}.drawer-note-list{display:grid;gap:16px;margin-top:22px}.drawer-note-card{background:var(--cream);border:3px solid var(--brown);box-shadow:5px 5px 0 var(--brown);padding:20px;min-width:0}.drawer-note-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}.drawer-note-chocolate{display:inline-flex;align-items:center;gap:10px;font-weight:700}.drawer-note-chocolate svg{width:34px;height:34px;flex-shrink:0}.drawer-note-number{color:var(--brown);opacity:.6;font-size:12px;white-space:nowrap}.drawer-note-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;text-align:justify;text-justify:inter-character;text-align-last:left;word-break:normal}.drawer-note-from{text-align:right;color:var(--green);font-size:12px;margin-top:20px}.drawer-load-more{display:flex;justify-content:center;align-items:center;gap:14px;width:100%;margin-top:24px;padding:16px;background:var(--cream);color:var(--brown);border:2px solid var(--brown);box-shadow:4px 4px 0 var(--brown);font:inherit;font-weight:700;cursor:pointer}.drawer-load-more:hover{background:#f4e4c9}.drawer-load-more span{font-size:12px;opacity:.7}@media(max-width:650px){.drawer-note-card{padding:16px;box-shadow:3px 3px 0 var(--brown)}.drawer-note-list{gap:14px}}.owner-date-title{min-height:54px}.drawer-empty-gift{display:flex;flex-direction:column;align-items:center;gap:8px;margin:36px auto 0}.drawer-empty-gift .largeicon{display:grid;width:92px;height:92px;place-items:center}.drawer-empty-gift .empty-drawer-date{margin:4px 0 0}.drawer-empty>.sub{max-width:340px;margin:22px auto 0}.drawer-empty .empty-share-panel{margin-top:30px}@media(max-width:420px){.owner-date-title{min-height:60px}.drawer-empty-gift{margin-top:28px}.drawer-empty>.sub{margin-top:18px}}.screen[data-screen=read] .drawer-message-list,.screen[data-screen=empty] .drawer-message-list{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}.drawer-fixed-close{position:fixed;z-index:45;left:0;right:0;bottom:0;padding:12px 18px calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,rgba(255,244,222,.96),var(--cream) 30%);border-top:1px solid #4b2d2526}.drawer-fixed-close-inner{max-width:420px;margin:0 auto}.drawer-fixed-close .secondary{display:block;width:100%;min-height:48px;padding:10px 16px;background:var(--red);color:var(--cream);font-size:14px}.drawer-note-meta{display:flex;justify-content:flex-end;align-items:baseline;flex-wrap:wrap;gap:8px;margin-top:20px}.drawer-note-meta .drawer-note-from{margin-top:0}.drawer-note-time{color:#897f78;font-size:11px;font-weight:400;white-space:nowrap}@container (min-width:700px){.solo .screen .owner-layout{display:grid;grid-template-columns:minmax(0,440px) minmax(0,310px);grid-template-areas:"intro intro" "calendar aside";align-items:start;justify-content:center;gap:32px 32px;max-width:860px;margin:34px auto 60px}.solo .screen .owner-layout .calendar-intro{grid-area:intro;max-width:none;width:100%;padding:0 0 32px;margin:0;text-align:left;border-bottom:1px solid #4b2d2533}.owner-layout .calendar-intro .kicker{margin-bottom:10px;font-size:11px}.owner-layout .calendar-intro h2{margin:0 0 8px;font-size:clamp(25px,3vw,32px);line-height:1.3}.owner-layout .calendar-title-line{display:inline}.owner-layout .calendar-title-line+.calendar-title-line:before{content:" "}.owner-layout .calendar-intro .sub{display:block;margin:0;font-size:14px}.owner-layout .calendar-intro .stamp{display:inline-block;margin:0;padding:7px 10px;font-size:10px;vertical-align:top}.owner-layout .calendar-main{grid-area:calendar;min-width:0;margin:0}.owner-layout .owner-sidebar{grid-area:aside;position:sticky;top:22px;min-width:0;align-self:start}.owner-layout .owner-share{margin:0;padding:18px 16px 20px;text-align:left;box-shadow:3px 3px #4b2d2526}.owner-layout .share-heading{font-size:17px}.owner-layout .share-description{font-size:12px;line-height:1.6}.owner-layout .share-actions>button{font-size:12px;min-height:52px}.owner-layout .share-close,.owner-layout .share-backdrop,.owner-layout .mobile-share-trigger{display:none}}@container (max-width:699px){.owner-layout{display:block}.owner-layout .calendar-intro{padding:26px 14px 20px;margin:0;text-align:center}.owner-layout .calendar-intro h2{margin:12px 0}.owner-layout .calendar-main{padding-bottom:110px}.owner-layout .owner-share{display:none;position:fixed;z-index:52;left:0;right:0;bottom:0;margin:0;padding:28px 18px max(24px,env(safe-area-inset-bottom));max-height:85dvh;overflow-y:auto;border:3px solid var(--brown);border-bottom:0;text-align:left}.owner-layout .share-close{display:block;position:absolute;top:10px;right:12px;border:0;background:transparent;color:var(--brown);font:inherit;font-size:25px;cursor:pointer}.owner-layout .share-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:51;background:#24150f9c}.owner-layout.share-open .owner-share,.owner-layout.share-open .share-backdrop{display:block}.owner-layout .mobile-share-trigger{display:block;position:fixed;z-index:40;left:16px;right:16px;bottom:max(14px,env(safe-area-inset-bottom));width:calc(100% - 32px);max-width:420px;min-height:50px;margin:0 auto;padding:10px 16px;border:3px solid var(--brown);background:var(--yellow);color:var(--brown);box-shadow:4px 4px 0 var(--brown);font:inherit;font-size:15px;font-weight:800;cursor:pointer}.owner-layout.share-open .mobile-share-trigger{display:none}}.calendar-layout .calendar-heading{display:inline-flex;align-items:center;justify-content:center;max-width:100%;gap:12px}.calendar-heading-text{min-width:0}.calendar-heading-gift{position:relative;display:inline-block;flex:0 0 26px;width:26px;height:24px;border:3px solid var(--brown);background:linear-gradient(90deg,transparent 38%,#e9c776 38% 62%,transparent 62%),linear-gradient(0deg,transparent 37%,#e9c776 37% 63%,transparent 63%),#a93238;image-rendering:pixelated}.calendar-heading-gift:before,.calendar-heading-gift:after{content:"";position:absolute;top:-9px;width:8px;height:6px;border:3px solid var(--brown);background:#e9c776}.calendar-heading-gift:before{left:1px}.calendar-heading-gift:after{right:1px}@container (max-width:699px){.calendar-layout .calendar-heading{gap:9px}.calendar-heading-gift{flex-basis:22px;width:22px;height:21px}}@container (min-width:700px){.solo .screen .visitor-layout{display:grid;grid-template-columns:minmax(0,440px);grid-template-areas:"intro" "calendar";justify-content:center;align-items:start;gap:28px;max-width:520px;margin:34px auto 60px}.solo .screen .visitor-layout .calendar-intro{grid-area:intro;width:100%;max-width:none;margin:0;padding:0 0 28px;border-bottom:1px solid #4b2d2533;text-align:left}.visitor-layout .calendar-intro h2{margin:0 0 8px;font-size:clamp(25px,3vw,32px);line-height:1.3}.visitor-layout .calendar-title-line{display:inline}.visitor-layout .calendar-title-line+.calendar-title-line:before{content:" "}.visitor-layout .calendar-intro .sub{display:block;margin:0;font-size:14px;line-height:1.65}.visitor-layout .calendar-main{grid-area:calendar;min-width:0;margin:0}}.visitor-layout .visitor-create-action{width:100%;margin:28px 0 16px}.visitor-layout .visitor-create-action .secondary{width:100%;min-height:54px;margin:0;padding:12px 16px;border:3px solid var(--brown);background:var(--yellow);color:var(--brown);box-shadow:4px 4px 0 var(--brown);font-size:15px;font-weight:800;line-height:1.4;cursor:pointer}.visitor-layout .visitor-create-action .secondary:hover{background:#f4d58b}.visitor-layout .visitor-create-action .secondary:focus-visible{outline:3px solid var(--green);outline-offset:6px}.visitor-layout .visitor-create-action .secondary:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--brown)}@container (max-width:699px){.visitor-layout{display:block}.visitor-layout .calendar-intro{padding:26px 14px 20px;margin:0;text-align:center}.visitor-layout .calendar-intro h2{margin:12px 0}.visitor-layout .visitor-create-action{margin:24px auto 12px}}.calendar-year-picker{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 12px;font-size:12px}.calendar-year-picker select{min-height:36px;padding:4px 9px;border:2px solid var(--brown);background:var(--cream);color:var(--brown);font:inherit}.calendar-danger{margin:32px 0 20px;text-align:center}.calendar-danger>button{border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--brown);font:inherit;font-size:12px;cursor:pointer}.delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:18px}.delete-scrim{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;border:0;background:#24150fcc;cursor:pointer}.delete-dialog{position:relative;width:min(100%,440px);max-height:90dvh;overflow-y:auto;padding:28px 24px;border:3px solid var(--brown);background:var(--cream);color:var(--brown);box-shadow:6px 6px 0 var(--brown)}.delete-dialog h3{margin:0 0 16px;font-size:22px}.delete-dialog p{font-size:13px;line-height:1.75}.delete-dialog label{display:block;margin:18px 0 8px;font-size:13px}.delete-dialog input{width:100%;padding:12px;border:2px solid var(--brown);background:#fff;color:var(--brown);font:inherit}.delete-actions{display:flex;gap:10px;margin-top:20px}.delete-actions button{flex:1;padding:12px 8px;border:2px solid var(--brown);background:var(--cream);color:var(--brown);font:inherit;font-weight:700;cursor:pointer}.delete-actions [data-action=delete-confirm]{background:#ac3741;color:#fff}.delete-actions button:disabled{opacity:.45;cursor:not-allowed}.retention-banner{display:flex;align-items:flex-start;gap:12px;margin:18px 0 0;padding:15px 16px;border:2px solid #c9a77b;background:#fff2d9;color:#624630;box-shadow:3px 3px #d9b78a}.retention-banner-icon{flex:0 0 auto;font-size:21px;line-height:1.2}.retention-banner-copy{min-width:0}.retention-banner-copy strong{display:block;font-size:13px;line-height:1.55}.retention-banner-copy p{margin:5px 0 0;font-size:12px;line-height:1.7}@media(max-width:520px){.retention-banner{margin:16px 0 0;padding:13px 12px}}
