:root{color-scheme:light;--bg-deep: #0d2f20;--bg-evergreen: #123f2b;--bg-mint: #e8f4ea;--surface: rgba(255, 252, 246, .94);--surface-strong: #fffaf1;--surface-muted: #f8efe2;--text: #20251f;--text-muted: #62685f;--green: #1f6f43;--green-dark: #174d32;--red: #b72e35;--red-dark: #8f2228;--gold: #d6a94a;--border: rgba(35, 63, 43, .14);--shadow: 0 24px 70px rgba(4, 20, 12, .22);--shadow-soft: 0 14px 36px rgba(4, 20, 12, .13);--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px}*{box-sizing:border-box}html{min-height:100%;background:var(--bg-deep)}body{margin:0;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(circle at 12% 0%,rgba(232,244,234,.9) 0 16rem,transparent 28rem),radial-gradient(circle at 92% 10%,rgba(183,46,53,.2) 0 12rem,transparent 26rem),linear-gradient(155deg,#f6f0df,#e8f4ea 34%,#123f2b);background-attachment:fixed;line-height:1.5}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.45) 1px,transparent 1.5px),radial-gradient(circle,rgba(255,255,255,.24) 1px,transparent 1.5px);background-size:44px 44px,78px 78px;background-position:0 0,18px 22px;opacity:.28}#app,#site-banner{width:min(100% - 32px,840px);margin:32px auto}.card{background:var(--surface);border:1px solid rgba(255,255,255,.62);border-radius:var(--radius-lg);padding:30px;margin-bottom:24px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}#site-banner{position:relative;overflow:hidden;text-align:center;padding:52px 32px 46px;background:linear-gradient(135deg,#ffffffe0,#fff8ecf5),radial-gradient(circle at top left,rgba(214,169,74,.26),transparent 34%),radial-gradient(circle at bottom right,rgba(31,111,67,.18),transparent 34%);border:1px solid rgba(255,255,255,.76);box-shadow:var(--shadow)}#site-banner:before,#site-banner:after{content:"";position:absolute;width:210px;height:210px;border-radius:999px;pointer-events:none}#site-banner:before{top:-112px;left:-82px;background:#1f6f431f}#site-banner:after{right:-96px;bottom:-124px;background:#b72e351f}.banner{position:relative;z-index:1;display:grid;gap:16px;justify-items:center}.banner-kicker{display:inline-flex;align-items:center;gap:10px;margin:0;padding:8px 14px;border:1px solid rgba(31,111,67,.14);border-radius:999px;background:#ffffffad;color:var(--green-dark);font-size:.82rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.banner-kicker:before,.banner-kicker:after{content:"";width:7px;height:7px;border-radius:999px;background:var(--red)}.banner-title{display:grid;grid-template-columns:auto minmax(0,max-content) auto;align-items:stretch;justify-content:center;gap:.35em;margin:0;line-height:1}.banner-title-text{max-width:12ch;font-size:clamp(2.25rem,7vw,4rem);font-weight:900;line-height:.95;letter-spacing:-.05em;text-align:center;background:linear-gradient(135deg,#9d1f28,#c54545 40%,#2f6b36);-webkit-background-clip:text;background-clip:text;color:transparent}.banner-tree{display:flex;align-items:center;font-size:clamp(2.25rem,7vw,4rem);line-height:1}.banner-subtitle{margin:0;max-width:540px;color:var(--text-muted);font-size:clamp(1rem,2vw,1.18rem);font-weight:600}.banner-trim{display:flex;align-items:center;gap:12px;color:var(--gold);font-size:1.05rem}.banner-trim:before,.banner-trim:after{content:"";display:block;width:64px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}h1,h2,h3{margin:0 0 16px;color:var(--green-dark);letter-spacing:-.035em;line-height:1.12}h1{font-size:clamp(2rem,5vw,3.4rem)}h2{font-size:clamp(1.55rem,3vw,2rem)}h3{font-size:1.2rem}p{margin-top:0}.row{display:flex;align-items:center;gap:16px}.space-between{justify-content:space-between}.person-name{margin:0;color:var(--red);font-size:clamp(1.35rem,3vw,1.7rem);font-weight:850;letter-spacing:-.035em}input,textarea,select{width:100%;border:1px solid var(--border);border-radius:16px;padding:14px 16px;background:#fffdf9f0;color:var(--text);font:inherit;box-shadow:inset 0 1px #ffffffb3;margin-bottom:10px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input::placeholder,textarea::placeholder{color:#62685fbf}input:focus,textarea:focus,select:focus{outline:none;background:#fffdf9;border-color:#1f6f4380;box-shadow:0 0 0 4px #1f6f4321}textarea{min-height:180px;resize:vertical}button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:140px;padding:14px 22px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--red),var(--red-dark));color:#fff;font:inherit;font-weight:800;box-shadow:0 14px 26px #8f222838;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}button.secondary{background:linear-gradient(135deg,var(--green),var(--green-dark));box-shadow:0 14px 26px #174d3238}button:hover{transform:translateY(-2px);box-shadow:0 18px 32px #04140c33}button:active{transform:translateY(0);filter:brightness(.98)}button:disabled{opacity:.56;cursor:default;transform:none;box-shadow:none}.wishlist-card{position:relative;margin-top:18px;padding:20px 22px;border:1px solid rgba(214,169,74,.28);border-radius:var(--radius-md);background:linear-gradient(135deg,#ffffffbd,#f8efe2f0),radial-gradient(circle at top right,rgba(183,46,53,.08),transparent 34%)}.update-card{position:relative}.markdown-content{color:#383d35;line-height:1.75}.markdown-content p{margin:0 0 14px}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin:0 0 12px;color:var(--green-dark)}.markdown-content ul{margin:0 0 14px 20px;padding:0}.markdown-content li{margin-bottom:8px}.markdown-content a{color:var(--red-dark);font-weight:700;text-decoration:underline;text-underline-offset:3px}.md-help{margin-left:8px;padding:0;background:transparent;color:var(--red-dark);font-size:.95rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;box-shadow:none;min-width:auto}.md-help:hover{transform:none;box-shadow:none}.md-popover{position:absolute;top:36px;right:18px;z-index:30;width:320px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fffefb;box-shadow:0 18px 40px #04140c29}.md-popover .md-examples{margin-top:8px;color:#333;font-size:.95rem}.md-popover code{padding:2px 6px;border-radius:6px;background:#fff3df;color:#2b342b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Roboto Mono,Courier New,monospace}.md-examples div{margin-bottom:6px}.md-examples ul,.md-examples ol{display:inline-block}table{width:100%;border-collapse:collapse;margin:12px 0;overflow:hidden;border-radius:var(--radius-sm)}thead th,tbody td{padding:13px 12px;border-bottom:1px solid rgba(35,63,43,.11);text-align:left}thead th{color:var(--green-dark);font-weight:800}tbody tr:hover{background:#f8efe273}select{max-width:100%}#hamburger-btn{position:absolute;top:14px;right:16px;z-index:20;min-width:unset;width:40px;height:40px;padding:0;border-radius:50%;font-size:1.2rem;background:#ffffffb8;color:var(--green-dark);box-shadow:0 2px 8px #04140c1f;border:1px solid rgba(35,63,43,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .18s ease,box-shadow .18s ease}#hamburger-btn:hover{background:#ffffffeb;transform:none;box-shadow:0 4px 12px #04140c2e}#hamburger-menu{display:none;position:fixed;z-index:100;min-width:220px;padding:12px;border-radius:var(--radius-md);background:var(--surface-strong);border:1px solid rgba(255,255,255,.72);box-shadow:var(--shadow)}#hamburger-menu.open{display:block}.menu-item{display:block;width:100%;margin-bottom:8px;border-radius:var(--radius-sm)}.menu-item:last-child{margin-bottom:0}#hamburger-pw-fields input{margin-bottom:8px}.hamburger-pw-actions{display:flex;gap:8px;margin-top:4px}.hamburger-pw-actions button{flex:1;min-width:unset}@media (max-width: 620px){body{background:radial-gradient(circle at 50% -10%,rgba(232,244,234,.82),transparent 18rem),linear-gradient(180deg,#174d32,#0d2f20)}#app,#site-banner{width:min(100% - 16px,840px);margin:8px auto 16px}.card{padding:18px;border-radius:18px;margin-bottom:16px}#site-banner{padding:32px 18px}.banner{gap:12px}.banner-title{font-size:clamp(2.25rem,14vw,3.1rem)}.banner-trim:before,.banner-trim:after{width:40px}.row{flex-direction:column;align-items:stretch;gap:10px}button{width:100%;padding:16px 22px}input,textarea,select{padding:16px;font-size:16px}h1{font-size:1.85rem}h2{font-size:1.45rem}.md-popover{right:0;left:0;width:auto}.person-name{font-size:1.35rem}}
