:root{--ink:#203e34;--muted:#686b5e;--cream:#f8f5ec;--paper:#fffdf8;--line:#deded0;--gold:#a7772e;--red:#924a41;--radius:20px}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-underline-offset:4px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}input:focus,textarea:focus,select:focus{outline:2px solid var(--gold);outline-offset:2px}h1,h2,p{margin-top:0}h1,h2,.brand{font-family:Georgia,"Times New Roman",serif}h1{font-size:clamp(2.3rem,4.8vw,4rem);font-weight:400;line-height:1.13;letter-spacing:-.035em;margin-bottom:20px}h2{font-weight:400;font-size:1.55rem;line-height:1.3}p{margin-bottom:16px}.topbar{max-width:1140px;margin:auto;min-height:108px;display:flex;align-items:center;justify-content:space-between;padding:22px 32px;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.65rem;line-height:1.2}.brand-star{font-size:3.1rem;color:var(--gold)}.brand small{display:block;font:10px/1.7 system-ui,sans-serif;letter-spacing:.19em;margin-top:4px}.account{display:flex;gap:20px;align-items:center;font-size:.88rem}.identity{text-decoration:none}.identity>span:first-child{font-size:1.3rem;margin-right:6px}.switch{color:var(--muted)}.text-button{background:none;border:none;padding:8px;color:var(--ink);text-decoration:underline;text-underline-offset:4px}.logout{color:var(--muted);font-size:.875rem}.tabs{display:flex;gap:36px;max-width:1076px;margin:0 auto;border-bottom:1px solid var(--line);padding:0 0 1px}.tabs a{padding:15px 0;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent;font-size:.95rem}.tabs a.active{border-color:var(--ink);color:var(--ink);font-weight:650}main{max-width:1140px;margin:auto;padding:42px 32px 40px;min-height:58vh}.season{font-size:.75rem;font-weight:650;letter-spacing:.15em;color:var(--gold);margin-bottom:18px}.family-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin:5px 0 45px}.family-heading p{color:var(--muted);margin:0;max-width:550px}.gold{color:var(--gold)}.season-stamp{width:158px;height:188px;border:1px solid #c6cbbb;border-radius:90px 90px 9px 9px;background:#edf0e5;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;transform:rotate(5deg);margin-right:25px}.season-stamp>span{font-size:4.7rem;line-height:1.2}.season-stamp small{text-align:center;font-size:.65rem;letter-spacing:.13em;margin-top:14px;line-height:1.6}.family-section{margin-bottom:34px}.section-title{display:flex;align-items:baseline;gap:20px;justify-content:space-between;margin-bottom:16px}.section-title h2{font-size:1.45rem;margin:0}.section-title a{font-size:.86rem;white-space:nowrap}.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.person-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:22px 24px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);min-width:0;transition:transform .18s,border-color .18s,box-shadow .18s}.person-card:hover{transform:translateY(-3px);border-color:#a5b39f;box-shadow:0 6px 18px #203e3409}.avatar{width:65px;height:65px;border-radius:50%;font-size:2.4rem;display:inline-flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0;margin-bottom:14px}.tint-0{background:#f3e7db}.tint-1{background:#e9eddf}.tint-2{background:#eee7da}.tint-3{background:#e6ece9}.person-card strong{font-weight:600;font-size:1.1rem;overflow-wrap:anywhere}.card-detail{margin-top:6px;font-size:.875rem;color:var(--muted);display:flex;justify-content:space-between;gap:12px;width:100%}.card-detail>span{color:var(--gold);font-size:1.1rem}.you{font:12px system-ui,sans-serif;background:#e9eddf;padding:3px 7px;border-radius:8px;margin-left:8px;vertical-align:middle}.page-heading{margin:8px 0 32px}.page-heading p{color:var(--muted)}.choose-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.choose-grid .person-card{padding:20px}.choose-grid .card-detail{font-size:.875rem}.hint{font-size:.875rem;line-height:1.65;color:var(--muted);margin-top:20px}.centered{text-align:center}.welcome{text-align:center;max-width:600px;margin:10px auto 15px}.welcome h1{font-size:clamp(2.7rem,6vw,4.2rem)}.login-emblem{width:95px;height:112px;border-radius:70px 70px 14px 14px;background:#e9eddf;margin:28px auto;font-size:3.6rem;display:grid;place-items:center}.lead{font-size:1.05rem;color:var(--muted)}.login-form{text-align:left;max-width:365px;margin:30px auto}.login-form .hint{text-align:center}.password-field{position:relative}.password-field input{padding-right:60px}.password-field button{position:absolute;right:6px;top:7px;font-size:.9rem}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:7px}input:not([type=checkbox]),textarea,select{width:100%;border:1px solid #bfc6b7;background:var(--paper);border-radius:10px;padding:12px 14px;color:var(--ink);min-height:49px}textarea{resize:vertical}.button{border:1px solid var(--ink);border-radius:10px;background:var(--ink);color:white;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;text-decoration:none;min-height:48px;font-size:.95rem;font-weight:550}.button:hover{background:#315644}.button.secondary{background:transparent;color:var(--ink);border-color:#b9c4b4}.button.secondary:hover{background:#edf0e5}.full{width:100%}.login-form>.button{margin-top:16px}.notice{border:1px solid #b6c5b1;background:#eaf0e4;padding:14px 18px;border-radius:12px;margin-bottom:24px}.notice.error,.form-error{color:#862d28}.notice.error{background:#faeae5;border-color:#d7aca3}.form-error{font-size:.9rem;margin:10px 0}.back{display:inline-block;font-size:.9rem;color:var(--muted);margin:0 0 28px;text-decoration:none}.list-heading{display:flex;gap:24px;align-items:center;margin-bottom:24px}.list-heading h1{font-size:clamp(2.1rem,4vw,3.2rem);margin-bottom:8px;overflow-wrap:anywhere}.list-heading .season{margin-bottom:9px}.list-heading p{margin:0;color:var(--muted)}.list-heading>.button{margin-left:auto;white-space:nowrap}.avatar.large{width:100px;height:100px;font-size:3.8rem;margin:0}.quiet-note{font-size:.9rem;color:var(--muted);padding:14px 0 24px;border-bottom:1px solid var(--line);margin-bottom:26px}.empty{padding:50px 25px;text-align:center;border:1px dashed #c6cbbb;border-radius:var(--radius);margin-top:25px}.empty>span{display:block;font-size:3rem;margin-bottom:20px}.empty h2{font-size:1.8rem}.empty p{color:var(--muted);max-width:460px;margin:0 auto 24px}.wish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.wish-card{border:1px solid var(--line);background:var(--paper);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.wish-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.wish-symbol{color:var(--gold);font-size:1.5rem}.wish-card h2{font-size:1.55rem;margin-bottom:10px}.edit-link{font-size:.875rem;color:var(--muted)}.badge{font-size:.8rem;padding:6px 10px;border-radius:7px;background:#e9eddf;display:inline-block}.badge.favorite{background:#f3ead5;color:#73531e}.price{font-weight:600;font-size:.95rem}.notes{white-space:pre-wrap;color:var(--muted);font-size:.95rem}.shop-link{display:inline-block;font-size:.9rem;margin:4px 0 22px;align-self:flex-start}.reservation{border-top:1px solid var(--line);padding-top:18px;margin-top:auto}.reservation .text-link{display:block;font-size:.85rem;margin-top:12px}.recipient{font-size:.9rem;margin-bottom:14px;text-decoration:none}.status-form{margin-top:auto;padding-top:24px}.status-controls{display:flex;gap:10px}.status-controls select{min-width:0}.small{padding:10px 15px}.release{font-size:.82rem;color:var(--muted);margin-top:14px;padding-left:0}.editor{max-width:660px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px}.editor>label:not(:first-of-type){margin-top:23px}.editor label>span{font-weight:400;font-size:.8rem;color:var(--muted);margin-left:5px}.editor .check{display:flex;align-items:center;gap:10px;font-weight:400}.check input{accent-color:var(--ink);width:20px;height:20px;flex-shrink:0}.form-actions{display:flex;align-items:center;gap:24px;margin-top:28px}.text-link{font-size:.9rem}.delete-area{max-width:660px;margin-top:26px;font-size:.9rem;color:var(--muted)}.delete-area summary{cursor:pointer;padding:12px 0}.danger{background:#873b33;border-color:#873b33}.compact h1{font-size:2.6rem}footer{text-align:center;padding:28px 24px 38px;max-width:1076px;border-top:1px solid var(--line);margin:0 auto;color:var(--muted)}footer>span{font-size:1.7rem;color:var(--gold)}footer p{font-family:Georgia,serif;font-style:italic;margin:8px 0 5px;font-size:1rem}footer small{font-size:.75rem}
@media(min-width:1000px){.family-section:first-of-type .people-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:950px){.choose-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tabs{margin:0 32px}.person-card{padding:20px}.account{gap:6px}.switch{display:none}.season-stamp{margin-right:0}.list-heading{flex-wrap:wrap}.list-heading>.button{margin-left:0}}@media(max-width:620px){.topbar{padding:18px 20px;min-height:92px;gap:12px}.brand{font-size:1.35rem;gap:8px}.brand-star{font-size:2.5rem}.brand small{font-size:8px}.account{flex-direction:column;align-items:flex-end;gap:0;font-size:.8rem}.account .logout{padding:2px 0;font-size:.75rem}.identity>span:first-child{font-size:1.1rem;margin-right:2px}.tabs{margin:0 20px;justify-content:space-between;gap:14px}.tabs a{font-size:.88rem;padding:12px 0}main{padding:30px 20px}.family-heading{margin-bottom:32px;gap:12px;align-items:flex-start}.family-heading h1{font-size:2.4rem}.family-heading p{font-size:.9rem}.family-heading .season{font-size:.65rem;letter-spacing:.1em;max-width:240px}.season-stamp{width:66px;height:92px;border-radius:45px 45px 6px 6px;margin-top:35px}.season-stamp>span{font-size:2.8rem}.season-stamp small{display:none}.people-grid,.choose-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.person-card,.choose-grid .person-card{padding:18px 16px;border-radius:16px}.avatar{width:58px;height:58px;font-size:2.2rem}.person-card strong{font-size:1rem}.card-detail{font-size:.875rem}.section-title{gap:10px;align-items:center}.section-title h2{font-size:1.18rem}.section-title a{font-size:.78rem}.family-section{margin-bottom:28px}.you{font-size:11px;margin-left:5px;padding:2px 5px}.wish-grid{grid-template-columns:1fr}.list-heading{gap:16px}.list-heading>div{flex:1;min-width:0}.list-heading .avatar{width:74px;height:74px;font-size:2.8rem}.list-heading h1{font-size:2.15rem}.list-heading p{font-size:.9rem}.list-heading>.button{width:100%;margin-top:10px}.list-heading .season{font-size:.65rem}.empty{padding:35px 20px}.empty h2{font-size:1.6rem}.editor{padding:22px 18px}.editor label>span{display:inline-block}.welcome{margin-top:0}.welcome .season{font-size:.65rem}.login-emblem{margin:22px auto}.welcome h1{font-size:3rem}.page-heading h1{font-size:2.4rem}.form-actions{gap:20px}footer{margin:0 20px;padding:25px 10px 30px}footer small{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.countdown{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#edf0e5;border:1px solid #cdd4bf;border-radius:18px;padding:22px 28px;margin:-12px 0 36px}.countdown [hidden]{display:none!important}.countdown-intro{display:flex;align-items:center;gap:18px;min-width:0}.countdown-star{color:#997027;font-size:2.8rem;line-height:1;flex-shrink:0}.countdown h2{font-size:1.35rem;margin:0 0 4px}.countdown p{font-size:.875rem;color:#56604d;margin:0}.countdown-units{display:flex;align-items:center;gap:16px;flex-shrink:0}.countdown-units>div{text-align:center;min-width:62px}.countdown-units strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:2.35rem;font-weight:400;font-variant-numeric:tabular-nums;line-height:1.15}.countdown-units span:not(.countdown-divider){display:block;font-size:.875rem;color:#56604d;margin-top:4px}.countdown-divider{font-size:1.5rem;color:#a19471;margin-top:-20px}
@media(max-width:760px){.countdown{flex-direction:column;align-items:stretch;gap:22px;padding:22px;margin-top:-6px}.countdown-intro{justify-content:center}.countdown-units{justify-content:center;border-top:1px solid #cdd4bf;padding-top:18px;gap:18px}.countdown-units>div{min-width:58px}.countdown h2{font-size:1.25rem}.countdown-star{font-size:2.3rem}.countdown-units strong{font-size:2.2rem}}
.overview-shortcut{margin-top:22px}.overview-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.overview-heading .season{margin-bottom:10px}.overview-heading h1{font-size:2.6rem;margin:0}.overview-heading>p{margin:0;color:var(--muted);font-size:.9rem}.overview-filters{display:flex;align-items:end;gap:20px;flex-wrap:wrap;padding:20px;background:#edf0e5;border:1px solid var(--line);border-radius:14px;margin-bottom:28px}.overview-search{flex:1;min-width:220px}.overview-search>div{display:flex;gap:10px}.overview-search input{min-width:0}.availability-filter{display:flex;align-items:center;gap:8px;min-height:48px;margin:0;font-size:.875rem;font-weight:400}.overview-filters>.text-link{padding-bottom:12px}.overview-group{margin-bottom:24px;scroll-margin-top:20px}.overview-person{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:0 4px 10px}.overview-person h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:1.3rem;margin:0}.overview-person a{text-decoration:none}.overview-person a:hover{text-decoration:underline}.overview-person h2 small{font: .8rem system-ui,sans-serif;color:var(--muted)}.overview-person>span{font-size:.875rem;color:var(--muted);white-space:nowrap}.overview-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--paper);overflow:hidden}.overview-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,140px) 140px 190px;gap:18px;align-items:center;padding:14px 18px}.overview-row+.overview-row{border-top:1px solid var(--line)}.overview-wish{display:flex;gap:8px;align-items:baseline;min-width:0;overflow-wrap:anywhere}.overview-wish strong{font-size:1rem;font-weight:600}.priority-star{color:var(--gold)}.overview-details{font-size:.875rem;margin-top:3px;color:var(--muted)}.overview-details summary{cursor:pointer;display:list-item;width:fit-content;padding:5px 0}.overview-details p{white-space:pre-wrap;margin:6px 0 0}.overview-price{font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}.overview-status{font-size:.875rem;overflow-wrap:anywhere}.overview-status small{display:block;font-size:.8rem;color:var(--muted);margin-top:3px}.status-available{font-weight:550}.status-quiet{color:var(--muted)}.overview-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}.overview-shop{font-size:.875rem;white-space:nowrap;padding:10px 0}.overview-actions .button{font-size:.875rem;padding:8px 12px;min-height:44px}.overview-waiting{border-top:1px solid var(--line);padding-top:22px;color:var(--muted)}.overview-waiting h2{font-family:inherit;font-size:.9rem;font-weight:600;margin-bottom:10px}.overview-waiting p{font-size:.875rem;line-height:2}.overview-empty{padding:24px 0 32px}.overview-empty p{color:var(--muted)}
@media(max-width:950px){.overview-row{grid-template-columns:minmax(0,1fr) 100px 115px;gap:12px}.overview-actions{grid-column:1/-1;justify-content:flex-end;padding-top:2px}}
@media(max-width:620px){.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.tabs a{text-align:center;min-height:48px}.overview-heading{align-items:start;flex-direction:column;gap:10px}.overview-heading h1{font-size:2.2rem}.overview-filters{padding:16px;gap:8px}.overview-search{min-width:0;flex-basis:100%}.overview-search>div{gap:8px}.availability-filter{font-size:.875rem}.overview-filters>.text-link{padding:8px 0}.overview-person h2{font-size:1.15rem;gap:8px}.overview-person>span{font-size:.8rem}.overview-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:14px;gap:8px 12px}.overview-wish{grid-column:1/-1}.overview-status{text-align:right}.overview-actions{padding-top:3px;gap:18px}.overview-price{align-self:center}.overview-actions .button{min-width:100px}.overview-details summary{padding:7px 0}.overview-waiting p{line-height:2.3}}
