:root{font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;color:#183e35;background:#f8f4ec;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,footer{max-width:1180px;margin:auto;padding:28px 36px;display:flex;justify-content:space-between;align-items:center}header{border-bottom:1px solid #ddd9cd}header span,footer{font-size:11px;letter-spacing:1.5px}.brand{font-family:Georgia,serif;font-size:25px;color:inherit;text-decoration:none}main{max-width:1180px;margin:auto;padding:64px 36px}.eyebrow{font-size:11px;letter-spacing:2.5px;color:#9d493d;font-weight:700}h1{font-size:clamp(32px,4vw,52px);line-height:1.3;letter-spacing:-2px;margin:20px 0}h2{font-size:25px;letter-spacing:-1px}.lead{color:#667469;font-size:15px;line-height:1.9}.season{font-size:12px;margin-top:26px;color:#8a7861}.create-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;margin-top:44px;align-items:center}.illustration{height:380px;position:relative;background:#e8e9dd;border-radius:160px 160px 8px 8px;overflow:hidden}.stamp{position:absolute;right:35px;top:40px;font-size:10px;letter-spacing:2px;transform:rotate(10deg);border:1px solid #8a7861;padding:12px;color:#8a7861}.parcel{position:absolute;display:flex;flex-direction:column;justify-content:center;align-items:center;font:64px Georgia,serif;box-shadow:0 12px 22px #173b3520;border:1px solid #ffffff33}.parcel span{font:9px Arial;letter-spacing:2px;margin-top:15px}.p1{width:180px;height:210px;left:60px;top:65px;background:#244b3e;color:#f3e6bc;transform:rotate(-8deg)}.p2{width:120px;height:140px;left:220px;top:160px;background:#a44b3d;color:#f9e8cf;transform:rotate(12deg)}.p3{width:125px;height:135px;left:135px;top:200px;background:#d7b67e;color:#493e2a;transform:rotate(-2deg)}.illustration>p{position:absolute;bottom:5px;width:100%;text-align:center;font-size:12px;letter-spacing:2px}label{display:block;font-size:12px;font-weight:600;margin:18px 0}input,textarea,select{display:block;width:100%;font:inherit;font-size:15px;color:#183e35;background:#fffdf8;border:1px solid #d8d8ca;border-radius:6px;padding:13px;margin-top:8px}textarea{resize:vertical;line-height:1.7}button{font:inherit;cursor:pointer;border:1px solid #bbc5b9;background:transparent;color:#183e35;padding:13px 18px;border-radius:5px}button:hover{filter:brightness(.95)}button:focus-visible,a:focus-visible{outline:3px solid #bd7558;outline-offset:4px}.primary{width:100%;background:#183e35;color:#fff8e8;padding:17px;border:0;margin-top:8px}.hint{font-size:12px;color:#7b8178;line-height:1.7}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}.progress{display:flex;justify-content:space-between;font-size:11px;padding:32px 0 18px;color:#7b8178}.doors{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}.door{min-height:165px;background:#efeadf;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:18px 8px;border:1px solid #ded8cb;border-radius:48px 48px 5px 5px}.door strong{font:36px Georgia,serif}.door span{font-size:10px}.door.ready{background:#dfe8da}.door.special{background:#9c4437;color:#fff4d8;grid-column:span 2}.door:disabled{cursor:default;opacity:.65}.door-date{letter-spacing:1px}#status{font-size:13px;color:#914b3f;overflow-wrap:anywhere;line-height:1.8}footer{border-top:1px solid #ddd9cd;color:#7b8178;padding-bottom:40px}dialog{border:0;border-radius:12px;background:#f8f4ec;color:#183e35;padding:36px;width:min(520px,92vw);max-height:90vh}dialog::backdrop{background:#142d28a8}.close{position:absolute;right:12px;top:8px;border:0;font-size:25px}#gift-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}#dialog-status{font-size:13px;color:#914b3f}[hidden]{display:none!important}@media(max-width:760px){header,footer{padding:22px}header span{display:none}main{padding:36px 22px}.create-layout{grid-template-columns:1fr;gap:28px}.illustration{height:320px}.p1{top:35px}.p2{top:130px}.p3{top:165px}.doors{grid-template-columns:repeat(3,1fr);gap:9px}.door{min-height:140px}.progress{gap:12px}.progress span:last-child{font-size:9px}footer{font-size:9px}.toolbar button{font-size:12px}}
#gift-dialog{width:min(540px,94vw)}#editor textarea{border:0;background:#f0ece3;padding:18px;font-weight:400;margin-top:20px}#gift-file{position:absolute;width:1px;height:1px;opacity:0;padding:0;margin:0} .attach-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}.attach-button{display:inline-block;margin:0;padding:10px 13px;border:1px solid #bfc7ba;border-radius:6px;cursor:pointer;font-size:13px}.attach-bar:focus-within .attach-button{outline:2px solid #bd7558;outline-offset:2px}.formats{margin:7px 0 16px;font-size:10px}#attachment-preview img,#attachment-preview video{display:block;max-width:100%;max-height:280px;margin:16px auto 0;border-radius:8px;object-fit:contain}#attachment-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 20px;font-size:12px}#attachment-name{overflow-wrap:anywhere;color:#687369}#remove-attachment{white-space:nowrap;font-size:11px;padding:7px 10px}button:disabled{cursor:wait;opacity:.6}

footer{gap:16px;flex-wrap:wrap}footer span:last-child{line-height:1.7}h1{word-break:keep-all;overflow-wrap:break-word}
/* Calendar themes share the same dates, content and access rules. */
body{--paper:#fff7e7;--ink:#442a24;--muted:#806257;--accent:#9e4136;background:var(--paper);color:var(--ink)}
body[data-theme=house]{--paper:#172f3d;--ink:#fff0d4;--muted:#c3d6d9;--accent:#31584f;background:radial-gradient(circle at 12% 20%,#ffeec7 0 1px,transparent 2px),radial-gradient(circle at 88% 31%,#ffeec7 0 1px,transparent 2px),#172f3d;background-size:230px 270px,310px 370px,auto}
body[data-theme=album]{--paper:#f5edeb;--ink:#513d40;--muted:#826367;--accent:#944f55}
.lead,.hint,.season,.progress,footer{color:var(--muted)}.eyebrow{color:var(--accent)}body[data-theme=house] .eyebrow{color:#f7cf80}button{color:var(--ink)}.primary{background:var(--accent);color:#fff8e8}dialog{background:var(--paper);color:var(--ink)}#status,#dialog-status{color:var(--ink)}.brand{font-family:inherit;font-weight:700;font-size:23px}header,footer{border-color:#99806944}.theme-picker{padding:0;border:0;margin:28px 0;min-width:0}.theme-picker legend{font-size:14px;font-weight:700;margin-bottom:12px}.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.theme-option{position:relative;margin:0;padding:10px;border:1px solid #99806966;border-radius:10px;cursor:pointer;min-width:0}.theme-option:has(input:checked){outline:2px solid var(--ink);outline-offset:2px}.theme-option:focus-within{outline:3px solid #bd7558;outline-offset:3px}.theme-option input{width:18px;height:18px;position:absolute;top:14px;left:14px;margin:0;accent-color:var(--accent)}.theme-option strong{display:block;font-size:12px;line-height:1.6;margin-top:8px;word-break:keep-all}.theme-option small{display:block;font-size:11px;color:var(--muted);font-weight:400;line-height:1.6;margin-top:4px;word-break:keep-all}.theme-swatch{height:76px;display:flex;justify-content:center;align-items:end;gap:8px;padding:20px 10px 12px;border-radius:4px}.theme-swatch i{display:block;width:24px;height:30px}.swatch-shop{background:repeating-linear-gradient(90deg,#ac4037 0 15px,#f1d8b3 15px 30px) top/100% 12px no-repeat,#f5e6cb}.swatch-shop i{background:linear-gradient(90deg,transparent 42%,#f6e6c9 42% 58%,transparent 58%),#9e4136}.swatch-shop i:nth-child(2){background-color:#3d6451;transform:rotate(-6deg)}.swatch-house{background:#172f3d}.swatch-house i{border:2px solid #b68d59;border-radius:15px 15px 0 0;background:#31584f}.swatch-house i:nth-child(2){background:#f7cf80;box-shadow:0 0 12px #f7cf8066}.swatch-album{background:#e9d9d6}.swatch-album i{background:linear-gradient(#9eafbe,#eacac1);border:4px solid white;border-bottom-width:9px;transform:rotate(-8deg);height:40px;width:30px}.swatch-album i:nth-child(2){transform:rotate(6deg)}.calendar-scene{margin-top:14px}.scene-top{height:30px;background:repeating-linear-gradient(90deg,#ac4037 0 36px,#f1d8b3 36px 72px);border-radius:0 0 12px 12px}.doors{padding:26px 18px;gap:24px 16px}.door{position:relative;isolation:isolate;min-height:155px;border-radius:4px;background:#9e4136;color:#fff4d6;box-shadow:3px 5px 0 #442a2422;border:0}.door:nth-child(3n){background:#3d6451;transform:rotate(-2deg)}.door:nth-child(3n+2){background:#c89b62;color:#422a20;transform:rotate(2deg)}body[data-theme=shop] .door:before{content:'';position:absolute;inset:0 45%;background:#f6e6c955;z-index:-1}body[data-theme=shop] .door:after{content:'';position:absolute;inset:43% 0;background:#f6e6c933;z-index:-1}.door strong{background:#fff4de;color:#5a3427;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;font-size:28px}.door.today{outline:3px solid #b78b40;outline-offset:5px}.door:disabled{opacity:.8;cursor:default}.door.special{grid-column:1/-1;min-height:110px;transform:none}.album-cover{display:none}body[data-theme=house] .scene-top{height:90px;clip-path:polygon(50% 0,100% 100%,0 100%);background:#e6eee9;border-radius:0}body[data-theme=house] .doors{background:#31584f;border:12px solid #25463e;border-top:0}body[data-theme=house] .door{background:#163733;color:#d8e1d5;border:3px solid #b68d59;border-radius:40px 40px 0 0;transform:none;box-shadow:0 4px 0 #142c25}body[data-theme=house] .door strong{background:transparent;color:inherit}body[data-theme=house] .door.opened.ready{background:#f7cf80;color:#5b3c1c;box-shadow:0 0 20px #f9d89844}body[data-theme=house] .illustration{background:#31584f}body[data-theme=house] .illustration>p{color:#fff0d4}body[data-theme=house] .stamp{color:#fff0d4;border-color:#b68d59}body[data-theme=album] .scene-top{display:none}body[data-theme=album] .album-cover{display:block;max-width:360px;margin:30px auto 45px;padding:16px 16px 18px;background:#fff;color:#513d40;transform:rotate(-3deg);box-shadow:0 8px 25px #513d4020;position:relative}body[data-theme=album] .album-cover:before{content:'';position:absolute;top:-12px;left:37%;width:80px;height:26px;background:#b7958388;transform:rotate(7deg)}.album-cover p{text-align:center;font-size:13px;margin-bottom:0}.winter-landscape{height:200px;background:linear-gradient(#9eafbe,#eacac1);display:flex;align-items:end;justify-content:center;gap:15px;overflow:hidden;border-bottom:24px solid #f4ede0}.winter-landscape i{display:block;width:65px;height:150px;background:#436858;clip-path:polygon(50% 0,80% 35%,66% 35%,95% 70%,75% 70%,100% 100%,0 100%,25% 70%,5% 70%,34% 35%,20% 35%)}.winter-landscape i:nth-child(2){height:115px}body[data-theme=album] .door{background:#fff;color:#513d40;border:9px solid white;border-bottom-width:18px;border-radius:0;box-shadow:0 5px 14px #513d4018;transform:rotate(-2deg)}body[data-theme=album] .door:nth-child(even){transform:rotate(2deg)}body[data-theme=album] .door strong{background:#e9d9d6;color:#513d40;border-radius:3px;width:70%;height:55px}body[data-theme=album] .door.opened.ready strong{background:#944f55;color:#fff5ed}body[data-theme=album] .door.special{transform:none}body[data-theme=album] .illustration{background:#e9d9d6;border-radius:4px}#owner-tools .theme-picker{max-width:640px}#calendar-title{overflow-wrap:anywhere}
@media(max-width:760px){.doors{padding:20px 8px;gap:18px 10px}.door{min-height:135px}.door span{font-size:10px}.theme-options{gap:8px}.theme-option{padding:7px}.theme-swatch{padding:22px 4px 10px;gap:4px}.theme-option small{font-size:11px}body[data-theme=house] .doors{border-width:6px}body[data-theme=house] .scene-top{height:55px}body[data-theme=album] .door{border-width:5px;border-bottom-width:12px}.album-cover{width:85%}.progress{flex-wrap:wrap}}
@media(max-width:380px){.theme-options{grid-template-columns:1fr}.theme-option{display:grid;grid-template-columns:90px 1fr;column-gap:12px}.theme-swatch{grid-row:span 2}.theme-option strong{align-self:end}.theme-option small{align-self:start;margin:0}.door span{font-size:9px}}
#access-gate{max-width:520px;margin:auto}#credentials-note{padding:24px;border:2px solid var(--accent);border-radius:12px;margin-bottom:30px}#credentials-note input{font-size:13px}#premium-dialog{width:min(560px,94vw)}#premium-dialog button{margin-top:10px}#media-upgrade{font-size:13px}.attach-bar:has(input:disabled){opacity:.5}.attach-bar:has(input:disabled) label{cursor:not-allowed}#logout{margin-top:20px;font-size:12px}#access-status,#premium-status{line-height:1.7}

/* Author workspace: distinguish sharing, private access and optional media. */
#owner-tools{margin:28px 0 0}.owner-guide{display:flex;gap:12px;align-items:flex-start;padding:18px 20px;background:var(--ink);color:var(--paper);border-radius:12px}.guide-number{flex:none;width:26px;height:26px;display:grid;place-items:center;border:1px solid currentColor;border-radius:50%;font-weight:700}.owner-guide strong{font-size:16px}.owner-guide p{font-size:13px;line-height:1.7;margin:5px 0 0;opacity:.9}.design-settings{margin:16px 0;border:1px solid #99806966;border-radius:10px;padding:0 18px;background:#ffffff0a}.design-settings summary{cursor:pointer;padding:17px 0;font-size:14px;font-weight:700;line-height:1.7}.design-settings summary:focus-visible{outline:3px solid #bd7558;outline-offset:3px}#current-design{font-weight:400;margin-left:10px;color:var(--muted)}.summary-action{display:inline-block;margin-left:12px;font-size:12px;text-decoration:underline;text-underline-offset:3px}#owner-tools .theme-picker{max-width:none;margin:8px 0 18px}.owner-actions{display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.owner-actions section{padding:24px;border-radius:12px}.share-panel{background:#e4ebdf;color:#183e35;border:1px solid #b3c4ab}.private-panel{background:#ffffff22;border:1px dashed #99806999}.section-label{font-size:12px;font-weight:700;letter-spacing:.5px}.owner-actions h2{font-size:20px;line-height:1.5;letter-spacing:-.6px;margin:8px 0}.owner-actions p,.upgrade-row p{font-size:13px;line-height:1.7;margin:0 0 16px}.share-panel button{color:#183e35;border-color:#8dA18a}.share-panel .share-primary{display:block;background:#183e35;color:#fff9ed;border:0;width:100%;font-weight:700;font-size:15px}.preview-button{display:block;width:100%;margin-top:8px;background:#ffffff70}.private-panel button{background:var(--paper);width:100%;font-size:14px}.upgrade-row{display:flex;gap:18px;justify-content:space-between;align-items:center;padding:20px 4px;border-bottom:1px solid #99806944}.upgrade-row strong{font-size:14px}.upgrade-row p{color:var(--muted);margin:5px 0 0}.upgrade-row button{flex:none;font-size:13px;background:var(--paper)}#logout{margin-top:16px;padding:8px 0;border:0;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}.progress{font-size:13px;font-weight:600;padding-top:26px}.progress span:last-child{font-size:11px;font-weight:400}.hint{font-size:13px}button:disabled{cursor:not-allowed}.door span{font-size:12px;font-weight:600}.door.ready{outline:2px solid var(--ink);outline-offset:3px}.door.ready span:last-child{background:#fff7e7;color:#183e35;padding:4px 7px;border-radius:4px}.door-date{letter-spacing:0}
@media(max-width:760px){.owner-actions{grid-template-columns:1fr}.owner-actions section{padding:20px}.private-panel p br{display:none}.private-panel button{width:auto}.upgrade-row{align-items:flex-start;gap:12px}.upgrade-row p{font-size:12px}.upgrade-row button{padding:11px 12px}.design-settings{padding:0 14px}#current-design{display:block;margin:5px 0 0 16px}.summary-action{float:right}.door span{font-size:11px}.door.ready span:last-child{padding:4px;font-size:10px}.progress{font-size:12px}.owner-guide{padding:16px}}
.design-settings summary{position:relative;padding-right:76px}.summary-action{position:absolute;right:0;top:18px;float:none;margin:0}#current-design{display:block;margin:4px 0 0 16px}

.design-heading{padding:17px 0 8px;font-size:14px;font-weight:700;line-height:1.7}.design-heading #current-design{display:inline;margin-left:10px}

.policy-notice{border:1px solid #99806977;border-radius:8px;padding:14px;margin:18px 0;font-size:13px;line-height:1.8}.policy-notice p{margin:5px 0}.check-label{display:flex;gap:10px;align-items:flex-start;font-size:14px}.check-label input{flex:none;width:20px;height:20px;margin:3px 0;accent-color:var(--accent)}.policy-notice a,.legal-page a,footer a{color:inherit;text-underline-offset:3px}.legal-page{max-width:840px}.legal-page article p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.9}.legal-page article h1{font-size:30px}.legal-draft{padding:16px;border:1px solid #9d493d}.legal-page article h2{margin-top:36px}#policy-gate{max-width:600px;margin:auto}

.delete-row{margin-top:24px;text-align:right}.danger-link{color:#8b2c2c;border-color:transparent;background:transparent;text-decoration:underline;text-underline-offset:4px}.delete-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;flex-wrap:wrap}.danger-button{background:#8b2c2c;color:#fff;border-color:#8b2c2c}#delete-dialog{max-width:540px}#delete-dialog p{line-height:1.65}

#deletion-result,#expired-actions{max-width:720px;margin:64px auto;padding:32px 0}#deletion-receipt{overflow-wrap:anywhere}
header nav{display:flex;align-items:center;gap:12px;flex-wrap:wrap}header nav a{color:inherit}header nav button{padding:8px 12px;font-size:13px}.library-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.library-actions [aria-pressed=true]{background:#183e35;color:#fff}.calendar-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:24px 0}.calendar-card{background:#fffaf1;border:1px solid #d6cdbb;border-radius:16px;padding:28px;box-shadow:0 5px 0 #e7ded0}.calendar-card h2{font-size:24px;overflow-wrap:anywhere}.calendar-card p{color:#655f54}.calendar-card .card-open{display:inline-block;margin:12px 16px 12px 0;color:#183e35;font-weight:700}.calendar-card button{font-size:13px}.library-empty{padding:36px;background:#fffaf1;border-radius:16px}.calendar-card[data-theme=album]{background:#f5eee7}.calendar-card[data-theme=house]{background:#eef3ed}#account-dialog,#claim-dialog,#sharing-dialog{max-width:520px;width:calc(100% - 32px)}#account-dialog form,#claim-dialog form,#sharing-dialog form{display:grid;gap:16px}#account-exit{font-size:12px}#connect-calendar,#reset-sharing{margin:12px 8px 12px 0}@media(max-width:600px){header{flex-wrap:wrap;gap:16px}header>span{display:none}.calendar-cards{grid-template-columns:1fr}.library-actions button{flex:1 1 140px}}
.calendar-card h2{word-break:keep-all}@media(max-width:600px){.library-actions #new-account-calendar{flex-basis:100%}}
.souvenir-panel{margin:28px 0;padding:28px;border:1px solid #cfc4ac;background:#fff8e9;border-radius:16px;display:flex;align-items:center;gap:24px;justify-content:space-between}.souvenir-panel h2{font-size:25px}.souvenir-panel p{line-height:1.7}.souvenir-panel button{flex-shrink:0}#souvenir-dialog{max-width:640px;width:calc(100% - 32px)}.souvenir-option{border-top:1px solid #d7c9b3;margin-top:24px;padding-top:16px}.souvenir-option h3 span{font-size:14px;color:#78654a;margin-left:10px}#postcard-day{width:100%;padding:12px;border:1px solid #bbae99;border-radius:6px;background:#fffdf8;font:inherit}#postcard-excerpt{width:100%;box-sizing:border-box}#souvenir-status{min-height:28px}#souvenir-dialog .hint{line-height:1.6}@media(max-width:600px){.souvenir-panel{align-items:stretch;flex-direction:column;padding:20px}}
#souvenir-dialog{max-width:900px}.souvenir-options{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}.souvenir-dialog-heading{position:sticky;top:0;z-index:2;background:var(--paper,#f8f4ec);padding:8px 0}.souvenir-dialog-heading h2,.souvenir-dialog-heading .eyebrow{padding-right:44px}.souvenir-dialog-heading .close{position:absolute;top:0;right:0;margin:0;width:40px;height:40px;padding:0}@media(max-width:600px){.souvenir-options{grid-template-columns:1fr;gap:0}}
.souvenir-panel{--ink:#183e35;--muted:#526052;--paper:#fff8e9;color:var(--ink)}
body[data-theme=house] .danger-link{color:#ffb4a6}
#capture-panel{margin:16px 0;padding:14px;border:1px solid #bfc7ba;border-radius:10px;background:#f7f4ec;color:#294c3f}#camera-live{display:block;width:100%;max-height:300px;object-fit:contain;border-radius:8px;background:#183e35}.capture-actions{display:flex;flex-wrap:wrap;gap:8px}.capture-actions button,.attach-bar button{padding:10px 13px;font-size:13px;margin:0}#capture-status{font-size:13px}#capture-panel .hint{color:#526454}
