.vlt-app{min-height:100vh;background:var(--ht-bg-base);color:var(--ht-fg-primary);display:flex;flex-direction:column}[data-theme=dark] .vlt-app{background:var(--ht-neutral-950);color:var(--ht-neutral-50)}.vlt-top{display:flex;align-items:center;justify-content:space-between;padding:24px 48px;border-bottom:1px solid var(--ht-border-subtle)}[data-theme=dark] .vlt-top{border-bottom-color:#1F1F1C}.vlt-top .brand{display:flex;align-items:center;gap:14px;color:var(--ht-amber-500)}.vlt-top .brand .name{font-size:16px;font-weight:500;letter-spacing:-.01em;color:var(--ht-fg-primary)}[data-theme=dark] .vlt-top .brand .name{color:var(--ht-neutral-50)}.vlt-top .brand .name em{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;color:var(--ht-amber-700)}[data-theme=dark] .vlt-top .brand .name em{color:var(--ht-amber-400)}.vlt-top .meta{display:flex;gap:18px;align-items:center;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.22em}.vlt-top .meta,.vlt-top .meta .signout{text-transform:uppercase;color:var(--ht-fg-tertiary)}.vlt-top .meta .signout{background:none;border:none;cursor:pointer;font:inherit;letter-spacing:inherit}.vlt-top .meta .signout:hover{color:var(--ht-fg-primary)}[data-theme=dark] .vlt-top .meta .signout:hover{color:var(--ht-neutral-50)}.vlt-hero{padding:48px 48px 24px;max-width:1080px}.vlt-hero .eyebrow{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ht-amber-700);margin-bottom:12px}[data-theme=dark] .vlt-hero .eyebrow{color:var(--ht-amber-400)}.vlt-hero h1{font-family:var(--ht-font-sans);font-weight:600;font-size:clamp(32px,4vw,48px);line-height:1.04;letter-spacing:-.025em;margin:0 0 12px;text-wrap:balance}.vlt-hero h1 em{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;color:var(--ht-amber-700)}[data-theme=dark] .vlt-hero h1 em{color:var(--ht-amber-400)}.vlt-hero p{font-size:16px;line-height:1.6;color:var(--ht-fg-secondary);margin:0;max-width:640px}[data-theme=dark] .vlt-hero p{color:var(--ht-neutral-300)}.vlt-hero p em{font-family:var(--ht-font-serif);font-style:italic;color:var(--ht-amber-700)}[data-theme=dark] .vlt-hero p em{color:var(--ht-amber-400)}.vlt-warn{margin:0 48px 24px;max-width:1080px;display:flex;gap:14px;align-items:flex-start;padding:16px 20px;background:rgba(194,138,30,.08);border:1px solid rgba(194,138,30,.4);border-radius:12px;font-size:14px;line-height:1.5;color:var(--ht-fg-primary)}[data-theme=dark] .vlt-warn{color:var(--ht-neutral-200)}.vlt-warn .dot{width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--ht-warning);flex-shrink:0}.vlt-warn strong{font-family:var(--ht-font-sans);font-weight:600;display:block;margin-bottom:4px}.vlt-warn code{font-family:var(--ht-font-mono);font-size:12px;background:rgba(20,18,12,.06);padding:2px 6px;border-radius:4px}[data-theme=dark] .vlt-warn code{background:rgba(255,255,255,.06)}.vlt-key{margin-top:12px;padding:14px 16px;background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:10px}[data-theme=dark] .vlt-key{background:#131312;border-color:#2A2A26}.vlt-key-label{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary);margin-bottom:8px}[data-theme=dark] .vlt-key-label{color:var(--ht-fg-tertiary)}.vlt-key-value{display:block;font-family:var(--ht-font-mono);font-size:13px;line-height:1.5;word-break:break-all;-webkit-user-select:all;-moz-user-select:all;user-select:all;background:rgba(20,18,12,.04);padding:10px 12px;border-radius:6px;color:var(--ht-fg-primary)}[data-theme=dark] .vlt-key-value{background:rgba(255,255,255,.04);color:var(--ht-neutral-50)}.vlt-key-actions{display:flex;gap:8px;margin-top:10px}.vlt-key-actions button{background:none;border:1px solid var(--ht-border-strong);color:var(--ht-fg-secondary);cursor:pointer;padding:6px 14px;border-radius:999px;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}[data-theme=dark] .vlt-key-actions button{border-color:#2A2A26;color:var(--ht-neutral-300)}.vlt-key-actions button:hover{border-color:var(--ht-fg-tertiary);color:var(--ht-fg-primary)}[data-theme=dark] .vlt-key-actions button:hover{border-color:#5A5A55;color:var(--ht-neutral-50)}.vlt-drop{margin:0 48px 32px;max-width:1080px;border:1px dashed var(--ht-border-strong);border-radius:24px;padding:40px;text-align:center;background:var(--ht-bg-elevated);transition:border-color .15s ease,background .15s ease}[data-theme=dark] .vlt-drop{background:#131312;border-color:#2A2A26}.vlt-drop.dragging{border-color:var(--ht-amber-500);background:rgba(212,162,74,.06)}.vlt-drop .icon{font-size:32px;color:var(--ht-amber-700);font-family:var(--ht-font-serif);font-style:italic;margin-bottom:8px}[data-theme=dark] .vlt-drop .icon{color:var(--ht-amber-400)}.vlt-drop p{font-size:15px;color:var(--ht-fg-secondary);margin:0 0 16px}[data-theme=dark] .vlt-drop p{color:var(--ht-neutral-300)}.vlt-drop input[type=file]{display:none}.vlt-drop .pick{padding:14px 24px;background:var(--ht-neutral-900);color:var(--ht-amber-400);border:none;border-radius:999px;font-family:var(--ht-font-sans);font-size:14px;font-weight:500;cursor:pointer;transition:transform .15s ease}[data-theme=dark] .vlt-drop .pick{background:var(--ht-bg-base);color:var(--ht-amber-700)}.vlt-drop .pick:hover:not(:disabled){transform:translateY(-1px)}.vlt-drop .pick:disabled{opacity:.55;cursor:not-allowed}.vlt-progress{margin-top:16px;font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary)}[data-theme=dark] .vlt-progress{color:var(--ht-fg-tertiary)}.vlt-list{padding:0 48px 64px;max-width:1080px}.vlt-list h2{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ht-fg-secondary);margin:0 0 16px}[data-theme=dark] .vlt-list h2{color:var(--ht-fg-tertiary)}.vlt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.vlt-upload-progress{margin-top:18px;padding:16px 20px;background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:14px;display:flex;flex-direction:column;gap:10px}[data-theme=dark] .vlt-upload-progress{background:#131312;border-color:#2A2A26}.vlt-upload-progress .upload-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.vlt-upload-progress .upload-filename{font-family:var(--ht-font-sans);font-size:14px;color:var(--ht-fg-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}[data-theme=dark] .vlt-upload-progress .upload-filename{color:var(--ht-neutral-200)}.vlt-upload-progress .upload-count{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary);flex-shrink:0}.vlt-upload-progress .upload-bar{height:6px;border-radius:999px;background:var(--ht-bg-sunken);overflow:hidden}[data-theme=dark] .vlt-upload-progress .upload-bar{background:#1F1F1C}.vlt-upload-progress .upload-fill{height:100%;background:linear-gradient(90deg,var(--ht-amber-500),var(--ht-amber-700));transition:width .25s ease;border-radius:999px}.vlt-upload-progress .upload-stage{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary)}.vlt-month-section{margin-bottom:32px}.vlt-month-section:last-child{margin-bottom:0}.vlt-month-header{display:flex;align-items:baseline;gap:12px;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--ht-border-subtle)}[data-theme=dark] .vlt-month-header{border-bottom-color:#2A2A26}.vlt-month-header .label{font-family:var(--ht-font-mono);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--ht-fg-primary);font-weight:500}[data-theme=dark] .vlt-month-header .label{color:var(--ht-neutral-50)}.vlt-month-header .count{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary)}.vlt-tile{position:relative;aspect-ratio:4/5;background:var(--ht-bg-sunken);border:1px solid var(--ht-border-subtle);border-radius:18px;overflow:hidden;cursor:pointer;transition:box-shadow .2s ease;content-visibility:auto;contain-intrinsic-size:240px 300px}[data-theme=dark] .vlt-tile{background:#1A1A18;border-color:#2A2A26}.vlt-tile:hover{box-shadow:0 12px 30px -10px rgba(20,18,12,.25)}.vlt-tile .preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.vlt-tile,.vlt-tile *,.vlt-tile .preview img{filter:none!important;-webkit-filter:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;mix-blend-mode:normal!important}.vlt-tile .preview img,.vlt-tile .preview video{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;image-rendering:auto}.vlt-tile .preview .placeholder{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary)}.vlt-tile .preview .video-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);color:#fff;font-size:15px;padding-left:3px;pointer-events:none;box-shadow:0 2px 10px rgba(0,0,0,.35)}.vlt-tile .overlay{position:absolute;left:0;right:0;bottom:0;padding:32px 16px 14px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.55) 70%);color:white;pointer-events:none}.vlt-tile .overlay .date{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.92}.vlt-tile .overlay .ttl{font-family:var(--ht-font-serif);font-style:italic;font-size:14px;line-height:1.3;color:#FAFAF7;text-shadow:0 1px 6px rgba(0,0,0,.4);display:block}.vlt-tile .overlay .gps{display:inline-block;margin-left:10px;font-family:var(--ht-font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-amber-300)}.vlt-tile .kebab{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.95);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ht-fg-primary);font-size:18px;line-height:1;opacity:0;transition:opacity .15s ease;z-index:3}.vlt-tile .kebab.open,.vlt-tile:hover .kebab{opacity:1}.vlt-tile .kebab:hover{background:white}.vlt-tile .kebab-menu{position:absolute;top:48px;right:10px;min-width:160px;background:white;border:1px solid var(--ht-border-subtle);border-radius:12px;box-shadow:0 12px 30px -10px rgba(20,18,12,.25);padding:6px;z-index:4;display:flex;flex-direction:column}[data-theme=dark] .vlt-tile .kebab-menu{background:#131312;border-color:#2A2A26}.vlt-tile .kebab-menu button{background:none;border:none;cursor:pointer;padding:10px 14px;text-align:left;font-family:var(--ht-font-sans);font-size:13px;color:var(--ht-fg-primary);border-radius:8px}[data-theme=dark] .vlt-tile .kebab-menu button{color:var(--ht-neutral-200)}.vlt-tile .kebab-menu button:hover{background:var(--ht-bg-sunken)}[data-theme=dark] .vlt-tile .kebab-menu button:hover{background:#1F1F1C}.vlt-tile .kebab-menu button.danger{color:var(--ht-danger)}.vlt-tile .kebab-menu hr{border:none;border-top:1px solid var(--ht-border-subtle);margin:4px 0}[data-theme=dark] .vlt-tile .kebab-menu hr{border-top-color:#2A2A26}.vlt-tile .select-box{position:absolute;top:10px;left:10px;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.95);border:1.5px solid white;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;opacity:0;transition:opacity .15s ease,background .15s ease;font-size:14px;line-height:1;color:var(--ht-fg-secondary)}.vault-body.select-mode .vlt-tile .select-box,.vlt-tile:hover .select-box{opacity:1}@media (min-width:720px){.select-toggle{display:none!important}}.vlt-tile.selected{outline:3px solid var(--ht-amber-500);outline-offset:-1px}.vlt-tile .heart{position:absolute;bottom:10px;right:10px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.95);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--ht-fg-tertiary);font-size:16px;line-height:1;opacity:0;transition:opacity .15s ease,color .15s ease,transform .15s ease;z-index:3}.vlt-tile:hover .heart{opacity:1}.vlt-tile.favorited .heart{opacity:1;color:#E33B5C}.vlt-tile .heart:hover{transform:scale(1.1)}.vlt-tile.favorited .heart:hover{color:#C12848}.vlt-tile.selected .select-box{opacity:1;background:var(--ht-amber-500);border-color:white;color:white}.vlt-empty{padding:48px 0;text-align:center;font-size:15px;color:var(--ht-fg-secondary);font-family:var(--ht-font-serif);font-style:italic}[data-theme=dark] .vlt-empty{color:var(--ht-fg-tertiary)}.vlt-toolbar{margin:0 48px 24px;max-width:1080px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.vlt-toolbar .search{flex:1;min-width:240px;display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:999px}[data-theme=dark] .vlt-toolbar .search{background:#131312;border-color:#2A2A26}.vlt-toolbar .search input{border:none;background:transparent;outline:none;font-family:var(--ht-font-sans);font-size:14px;color:var(--ht-fg-primary);width:100%}.vlt-toolbar .search svg{color:var(--ht-fg-tertiary);flex-shrink:0}.vlt-toolbar select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:10px 36px 10px 16px;background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:999px;font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary);cursor:pointer;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3e%3cpath d='M1 1L5 5L9 1' stroke='%237C7C74' stroke-width='1.4' stroke-linecap='round'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 14px center}[data-theme=dark] .vlt-toolbar select{background-color:#131312;border-color:#2A2A26;color:var(--ht-border-strong)}.vlt-toolbar .seg{display:flex;gap:2px;padding:4px;background:var(--ht-bg-sunken);border-radius:999px}[data-theme=dark] .vlt-toolbar .seg{background:#1A1A18}.vlt-toolbar .seg button{padding:6px 14px;border-radius:999px;background:transparent;border:none;cursor:pointer;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ht-fg-secondary)}.vlt-toolbar .seg button.active{background:var(--ht-neutral-900);color:var(--ht-neutral-50)}[data-theme=dark] .vlt-toolbar .seg button.active{background:var(--ht-bg-base);color:var(--ht-fg-primary)}.vlt-toolbar .trash-toggle{padding:10px 20px;border-radius:999px;background:transparent;border:1px solid var(--ht-border-strong);font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary);cursor:pointer}.vlt-toolbar .trash-toggle.active{background:var(--ht-neutral-900);color:var(--ht-neutral-50);border-color:var(--ht-fg-primary)}[data-theme=dark] .vlt-toolbar .trash-toggle{border-color:#2A2A26;color:var(--ht-fg-tertiary)}[data-theme=dark] .vlt-toolbar .trash-toggle.active{background:var(--ht-bg-base);color:var(--ht-fg-primary);border-color:var(--ht-neutral-50)}.vlt-layout{display:grid;grid-template-columns:220px 1fr;align-items:start;gap:32px;padding:0 48px 64px;max-width:1320px}.vlt-sidebar{position:sticky;top:16px}@media (max-width:900px){.vlt-layout{grid-template-columns:1fr}.vlt-sidebar{order:2}}.vlt-sidebar{display:flex;flex-direction:column;gap:4px}.vlt-sidebar h3{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ht-fg-secondary);margin:0 0 8px}[data-theme=dark] .vlt-sidebar h3{color:var(--ht-fg-tertiary)}.vlt-sidebar .album-item{position:relative;display:flex;align-items:center;gap:10px;padding:8px 12px 8px 14px;background:transparent;border:none;cursor:pointer;border-radius:10px;font-family:var(--ht-font-sans);font-size:14px;color:var(--ht-fg-secondary);text-align:left;transition:background .15s ease,color .15s ease;width:100%;min-height:36px}.vlt-sidebar .album-item .album-cover{display:block;flex-shrink:0;width:28px;height:28px;min-height:0;border-radius:6px;background-color:var(--ht-bg-sunken);background-size:cover;background-position:50%;overflow:hidden}[data-theme=dark] .vlt-sidebar .album-item .album-cover{background-color:#1A1A18}.vlt-sidebar .album-item .label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-theme=dark] .vlt-sidebar .album-item{color:var(--ht-neutral-300)}.vlt-sidebar .album-item:hover{background:var(--ht-bg-sunken);color:var(--ht-fg-primary)}[data-theme=dark] .vlt-sidebar .album-item:hover{background:rgba(255,255,255,.04);color:var(--ht-neutral-50)}.vlt-sidebar .album-item.active{background:var(--ht-amber-50);color:var(--ht-amber-900);font-weight:500}.vlt-sidebar .album-item.active:before{content:"";position:absolute;left:4px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--ht-amber-600)}[data-theme=dark] .vlt-sidebar .album-item.active{background:rgba(212,162,74,.12);color:var(--ht-amber-300)}[data-theme=dark] .vlt-sidebar .album-item.active:before{background:var(--ht-amber-400)}.vlt-sidebar .album-item .count{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.12em;opacity:.6}.vlt-sidebar .new-album{margin-top:4px;padding:10px 14px;background:transparent;border:1px dashed var(--ht-border-strong);border-radius:10px;cursor:pointer;font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary)}.vlt-sidebar .new-album:hover{border-color:var(--ht-amber-500);color:var(--ht-amber-700)}[data-theme=dark] .vlt-sidebar .new-album{border-color:#2A2A26;color:var(--ht-fg-tertiary)}[data-theme=dark] .vlt-sidebar .new-album:hover{border-color:var(--ht-amber-400);color:var(--ht-amber-400)}.vlt-bulk{position:sticky;bottom:16px;margin:16px 0 0;padding:12px 20px;background:var(--ht-neutral-900);color:var(--ht-neutral-50);border-radius:999px;display:flex;align-items:center;gap:16px;box-shadow:0 8px 24px -8px rgba(20,18,12,.4);z-index:10;flex-wrap:wrap}[data-theme=dark] .vlt-bulk{background:var(--ht-bg-base);color:var(--ht-fg-primary)}.vlt-bulk .count{font-size:11px}.vlt-bulk .count,.vlt-bulk button{font-family:var(--ht-font-mono);letter-spacing:.18em;text-transform:uppercase}.vlt-bulk button{background:none;border:1px solid;color:inherit;cursor:pointer;padding:6px 14px;border-radius:999px;font-size:10px}.vlt-bulk button:hover{opacity:.8}.vlt-lightbox{position:fixed;inset:0;background:rgba(8,8,6,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100;display:flex;flex-direction:column;animation:lightbox-in .18s ease-out}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}.vlt-lightbox .lb-top{position:absolute;top:0;left:0;right:0;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(0,0,0,.6),transparent);color:white;z-index:2}.vlt-lightbox .lb-info{display:flex;flex-direction:column;gap:4px}.vlt-lightbox .lb-info .name{font-family:var(--ht-font-sans);font-size:15px;font-weight:500;max-width:60vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vlt-lightbox .lb-info .meta{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.75}.vlt-lightbox .lb-info .meta .gps{color:var(--ht-amber-300);margin-left:10px}.vlt-lightbox .lb-actions{display:flex;gap:8px;align-items:center}.vlt-lightbox .lb-actions a,.vlt-lightbox .lb-actions button{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:white;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;text-decoration:none;transition:background .15s ease}.vlt-lightbox .lb-actions a:hover,.vlt-lightbox .lb-actions button:hover{background:rgba(255,255,255,.2)}.vlt-lightbox .lb-actions .danger:hover{background:rgba(194,75,59,.5)}.vlt-lightbox .lb-actions .heart.active{color:#E33B5C;background:rgba(255,255,255,.18)}.vlt-lightbox .lb-actions .heart.active:hover{background:rgba(255,255,255,.28)}.vlt-lightbox .lb-stage{position:absolute;inset:64px 0 64px;display:flex;align-items:center;justify-content:center;padding:0 80px}.vlt-lightbox .lb-stage img,.vlt-lightbox .lb-stage video{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px -20px rgba(0,0,0,.7)}.vlt-lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.1);border:none;color:white;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;line-height:1;z-index:2}.vlt-lightbox .lb-nav:hover{background:rgba(255,255,255,.2)}.vlt-lightbox .lb-nav:disabled{opacity:.3;cursor:default}.vlt-lightbox .lb-nav.prev{left:20px}.vlt-lightbox .lb-nav.next{right:20px}.vlt-lightbox .lb-counter{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.5);z-index:2}@media (max-width:640px){.vlt-lightbox .lb-stage{inset:56px 0 56px;padding:0 16px}.vlt-lightbox .lb-nav.prev{left:8px}.vlt-lightbox .lb-nav.next{right:8px}.vlt-drop,.vlt-hero,.vlt-layout,.vlt-list,.vlt-toolbar,.vlt-top,.vlt-warn{padding-left:20px;padding-right:20px;margin-left:0;margin-right:0}}.vlt-app>.vault-body,.vlt-drop,.vlt-hero,.vlt-layout,.vlt-list,.vlt-toolbar,.vlt-warn{width:100%;max-width:1320px;margin-left:auto;margin-right:auto;box-sizing:border-box}.vlt-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.mod-app{min-height:100vh;background:var(--ht-bg-base);color:var(--ht-fg-primary);display:flex;flex-direction:column}[data-theme=dark] .mod-app{background:var(--ht-neutral-950);color:var(--ht-neutral-50)}.mod-top{display:flex;align-items:center;justify-content:space-between;padding:24px 48px;border-bottom:1px solid var(--ht-border-subtle)}[data-theme=dark] .mod-top{border-bottom-color:#1F1F1C}.mod-top .brand{display:flex;align-items:center;gap:14px;color:var(--ht-amber-500)}.mod-top .brand .name{font-size:16px;font-weight:500;letter-spacing:-.01em;color:var(--ht-fg-primary)}[data-theme=dark] .mod-top .brand .name{color:var(--ht-neutral-50)}.mod-top .brand .name em{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;color:var(--ht-amber-700)}[data-theme=dark] .mod-top .brand .name em{color:var(--ht-amber-400)}.mod-top .meta{display:flex;gap:18px;align-items:center;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.22em}.mod-top .meta,.mod-top .meta button{text-transform:uppercase;color:var(--ht-fg-tertiary)}.mod-top .meta button{background:none;border:none;cursor:pointer;font:inherit;letter-spacing:inherit}.mod-top .meta button:hover{color:var(--ht-fg-primary)}[data-theme=dark] .mod-top .meta button:hover{color:var(--ht-neutral-50)}.mod-hero{padding:48px 48px 24px;max-width:1080px}.mod-hero .eyebrow{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ht-amber-700);margin-bottom:12px}[data-theme=dark] .mod-hero .eyebrow{color:var(--ht-amber-400)}.mod-hero h1{font-family:var(--ht-font-sans);font-weight:600;font-size:clamp(32px,4vw,48px);line-height:1.04;letter-spacing:-.025em;margin:0 0 12px;text-wrap:balance}.mod-hero h1 em{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;color:var(--ht-amber-700)}[data-theme=dark] .mod-hero h1 em{color:var(--ht-amber-400)}.mod-hero p{font-size:16px;line-height:1.6;color:var(--ht-fg-secondary);margin:0;max-width:640px}[data-theme=dark] .mod-hero p{color:var(--ht-neutral-300)}.mod-hero p em{font-family:var(--ht-font-serif);font-style:italic;color:var(--ht-amber-700)}[data-theme=dark] .mod-hero p em{color:var(--ht-amber-400)}.mod-toolbar{margin:0 48px 24px;max-width:1080px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.mod-btn-primary{padding:12px 22px;background:var(--ht-neutral-900);color:var(--ht-amber-400);border:none;border-radius:999px;font-family:var(--ht-font-sans);font-size:13px;font-weight:500;cursor:pointer;transition:transform .15s ease}[data-theme=dark] .mod-btn-primary{background:var(--ht-bg-base);color:var(--ht-amber-700)}.mod-btn-primary:hover:not(:disabled){transform:translateY(-1px)}.mod-btn-primary:disabled{opacity:.55;cursor:not-allowed}.mod-btn-ghost{padding:10px 18px;background:transparent;border:1px solid var(--ht-border-strong);border-radius:999px;font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary);cursor:pointer}[data-theme=dark] .mod-btn-ghost{border-color:#2A2A26;color:var(--ht-border-strong)}.mod-btn-ghost:hover{border-color:var(--ht-fg-tertiary)}.mod-content{padding:0 48px 64px;max-width:1080px}.mod-section-title{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ht-fg-secondary);margin:0 0 16px}[data-theme=dark] .mod-section-title{color:var(--ht-fg-tertiary)}.mod-empty{padding:48px 0;text-align:center;font-size:15px;color:var(--ht-fg-secondary);font-family:var(--ht-font-serif);font-style:italic}[data-theme=dark] .mod-empty{color:var(--ht-fg-tertiary)}.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.mod-card{background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:10px;transition:transform .15s ease,box-shadow .15s ease}[data-theme=dark] .mod-card{background:#131312;border-color:#2A2A26}.mod-card:hover{transform:translateY(-2px);box-shadow:var(--ht-shadow-e2)}.mod-card .avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--ht-amber-700),var(--ht-amber-900));color:white;display:flex;align-items:center;justify-content:center;font-family:var(--ht-font-serif);font-style:italic;font-size:22px;align-self:center;margin-bottom:4px;background-size:cover;background-position:50%}.mod-card .name{font-size:16px;font-weight:500;color:var(--ht-fg-primary);text-align:center}[data-theme=dark] .mod-card .name{color:var(--ht-neutral-50)}.mod-card .sub{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary);text-align:center}.mod-card .actions{display:flex;gap:8px;justify-content:center;margin-top:4px}.mod-card .actions button{background:none;border:none;cursor:pointer;padding:4px 0;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary)}.mod-card .actions button:hover{color:var(--ht-fg-primary)}[data-theme=dark] .mod-card .actions button:hover{color:var(--ht-neutral-50)}.mod-card .actions button.danger:hover{color:var(--ht-danger)}.mod-form{background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:16px;padding:24px;margin-bottom:24px;display:flex;flex-direction:column;gap:14px}[data-theme=dark] .mod-form{background:#131312;border-color:#2A2A26}.mod-form h3{font-family:var(--ht-font-sans);font-size:18px;font-weight:600;margin:0 0 8px}.mod-field{display:flex;flex-direction:column;gap:6px}.mod-field label{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary)}[data-theme=dark] .mod-field label{color:var(--ht-fg-tertiary)}.mod-field input,.mod-field select,.mod-field textarea{font-family:var(--ht-font-sans);font-size:15px;padding:12px 16px;background:var(--ht-bg-base);border:1px solid var(--ht-border-subtle);border-radius:10px;color:var(--ht-fg-primary);outline:none;resize:vertical}[data-theme=dark] .mod-field input,[data-theme=dark] .mod-field select,[data-theme=dark] .mod-field textarea{background:#1A1A18;border-color:#2A2A26;color:var(--ht-neutral-50)}.mod-field input:focus,.mod-field select:focus,.mod-field textarea:focus{border-color:var(--ht-amber-500);box-shadow:0 0 0 3px rgba(212,162,74,.16)}.mod-form-actions{display:flex;gap:12px;align-items:center;margin-top:4px}.mod-capsule{position:relative;border-color:var(--ht-amber-300);background:linear-gradient(180deg,rgba(212,162,74,.05),transparent)}[data-theme=dark] .mod-capsule{border-color:rgba(212,162,74,.3);background:linear-gradient(180deg,rgba(212,162,74,.07),transparent)}.mod-capsule .lock{font-family:var(--ht-font-serif);font-style:italic;color:var(--ht-amber-700);font-size:28px}[data-theme=dark] .mod-capsule .lock{color:var(--ht-amber-400)}.mod-capsule .countdown{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ht-amber-700)}[data-theme=dark] .mod-capsule .countdown{color:var(--ht-amber-400)}.mod-photo-tile{background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}[data-theme=dark] .mod-photo-tile{background:#131312;border-color:#2A2A26}.mod-photo-tile .preview{aspect-ratio:1/1;background:var(--ht-bg-sunken);display:flex;align-items:center;justify-content:center;overflow:hidden}[data-theme=dark] .mod-photo-tile .preview{background:#1A1A18}.mod-photo-tile .preview img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.mod-photo-tile .body{padding:12px 14px}.mod-photo-tile .narration{font-family:var(--ht-font-serif);font-style:italic;font-size:14px;line-height:1.4;color:var(--ht-fg-secondary)}[data-theme=dark] .mod-photo-tile .narration{color:var(--ht-neutral-300)}.mod-photo-tile audio{width:100%;margin-top:8px}@media (max-width:640px){.mod-content,.mod-hero,.mod-toolbar,.mod-top{padding-left:20px;padding-right:20px;margin-left:0;margin-right:0}}.story-card{display:flex;flex-direction:column;gap:0}.story-card-inner{position:relative;aspect-ratio:4/3;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1);border-radius:16px}.story-card.flipped .story-card-inner{transform:rotateY(180deg)}.story-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;overflow:hidden;border:1px solid var(--ht-border-subtle);cursor:pointer}.story-front{background:var(--ht-neutral-900)}.story-photo{position:absolute;inset:0;image-rendering:auto}.story-expand{position:absolute;top:10px;right:10px;z-index:3;width:30px;height:30px;border-radius:8px;background:rgba(20,20,18,.55);border:1px solid rgba(255,255,255,.25);color:#FAFAF7;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);opacity:0;transition:opacity .2s ease}.story-front:hover .story-expand{opacity:1}.story-badge{position:absolute;left:12px;bottom:12px;z-index:2;padding:6px 12px;border-radius:999px;background:rgba(20,20,18,.6);backdrop-filter:blur(8px);color:#FAFAF7;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.story-back{transform:rotateY(180deg);background:linear-gradient(160deg,#2A1E3A,#15101F);color:#FAFAF7;display:flex;align-items:center;justify-content:center;padding:24px}.story-back-inner{display:flex;flex-direction:column;gap:16px;width:100%;max-height:100%;overflow-y:auto}.story-text{font-family:var(--ht-font-serif);font-style:italic;font-size:17px;line-height:1.55;color:#F0EAE0;margin:0}.story-audio{gap:14px;padding:12px;border-radius:12px;background:rgba(165,91,196,.14);border:1px solid rgba(165,91,196,.35)}.story-audio,.story-audio-btn{display:flex;align-items:center}.story-audio-btn{width:46px;height:46px;border-radius:50%;flex-shrink:0;background:#A55BC4;color:white;border:none;cursor:pointer;font-size:15px;justify-content:center}.story-audio-label .t{font-size:14px;font-weight:500;color:#FAFAF7}.story-audio-label .d{font-size:12px;color:rgba(250,250,247,.6);font-style:italic;font-family:var(--ht-font-serif)}.story-edit,.story-tell{align-self:flex-start;background:none;border:none;cursor:pointer;padding:4px 0;font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase}.story-edit{color:rgba(250,250,247,.7);margin-top:auto}.story-tell{color:#A55BC4;padding:12px 16px}.story-lightbox{position:fixed;inset:0;z-index:220;background:rgba(10,10,9,.94);display:flex;align-items:center;justify-content:center;padding:32px;animation:ssFade .25s ease both}.story-lightbox-img{max-width:95vw;max-height:92vh;-o-object-fit:contain;object-fit:contain;border-radius:8px;box-shadow:0 20px 80px -20px rgba(0,0,0,.8)}.story-lightbox-close{position:absolute;top:24px;right:28px;z-index:2;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);color:#FAFAF7;border:1px solid rgba(255,255,255,.2);cursor:pointer;font-size:16px}.story-lightbox-loading{color:rgba(255,255,255,.7);font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.dyn-tree-rich{position:relative;margin:24px 64px 64px;max-width:1320px;padding:24px 0}.dyn-connectors{pointer-events:none;z-index:0}.dyn-gen-row-wrap{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:start;position:relative;z-index:1;padding:32px 0;border-top:1px dashed var(--ht-border-subtle)}[data-theme=dark] .dyn-gen-row-wrap{border-top-color:#2A2A26}.dyn-gen-row-wrap:first-child{border-top:none;padding-top:0}.dyn-gen-label-rich{display:flex;flex-direction:column;gap:6px;padding-top:4px}.dyn-gen-label-rich .roman{font-family:var(--ht-font-serif);font-style:italic;font-size:42px;line-height:1;color:var(--ht-amber-700)}[data-theme=dark] .dyn-gen-label-rich .roman{color:var(--ht-amber-400)}.dyn-gen-label-rich .name{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ht-fg-secondary);margin-top:4px}[data-theme=dark] .dyn-gen-label-rich .name{color:var(--ht-neutral-300)}.dyn-gen-label-rich .desc{font-family:var(--ht-font-serif);font-style:italic;font-size:13px;color:var(--ht-fg-tertiary)}.dyn-gen-row-rich{display:flex;flex-wrap:wrap;gap:24px 36px;align-items:flex-start;padding:8px 0}.dyn-person-rich{background:transparent;border:none;padding:0;margin:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;width:100px;transition:opacity .2s ease,transform .2s ease;position:relative}.dyn-person-rich:hover{transform:translateY(-2px)}.dyn-person-rich.dim{opacity:.3}.dyn-person-rich.hl{opacity:1}.dyn-person-rich .portrait{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--ht-font-serif);font-style:italic;font-weight:500;font-size:22px;color:white;background-size:cover;background-position:50%;position:relative;box-shadow:0 4px 14px -4px rgba(20,18,12,.35);flex-shrink:0}.dyn-person-rich.deceased .portrait{background:linear-gradient(135deg,#5a5a55,#2a2a26)!important;filter:grayscale(1) brightness(.78);outline:2px dotted var(--ht-neutral-500);outline-offset:3px;box-shadow:0 4px 14px -4px rgba(20,18,12,.5)}.dyn-person-rich.deceased .label .nm{color:var(--ht-fg-secondary)!important;font-style:italic}[data-theme=dark] .dyn-person-rich.deceased .label .nm{color:var(--ht-fg-tertiary)!important}.dyn-person-rich.deceased .label .dt{color:var(--ht-fg-tertiary)}.dyn-person-rich.you .portrait{outline:3px solid var(--ht-amber-500);outline-offset:3px}.dyn-person-rich .label{text-align:center;max-width:100px}.dyn-person-rich .label .nm{font-family:var(--ht-font-serif);font-style:italic;font-size:13px;color:var(--ht-fg-primary);line-height:1.2;margin-bottom:2px}[data-theme=dark] .dyn-person-rich .label .nm{color:var(--ht-neutral-50)}.dyn-person-rich.you .label .nm{color:var(--ht-amber-700)}[data-theme=dark] .dyn-person-rich.you .label .nm{color:var(--ht-amber-400)}.dyn-person-rich .label .rel{letter-spacing:.14em;text-transform:uppercase;color:var(--ht-fg-tertiary);line-height:1.3}.dyn-person-rich .label .dt,.dyn-person-rich .label .rel{font-family:var(--ht-font-mono);font-size:9px;margin-top:2px}.dyn-person-rich .label .dt{letter-spacing:.12em;color:var(--ht-fg-secondary)}.dyn-person-rich .label .stats{font-family:var(--ht-font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ht-amber-700);margin-top:6px}[data-theme=dark] .dyn-person-rich .label .stats{color:var(--ht-amber-400)}.dyn-add-slot{background:transparent;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;width:100px;opacity:.5;transition:opacity .15s ease,transform .15s ease}.dyn-add-slot:hover{opacity:1;transform:translateY(-2px)}.dyn-add-slot .add-circle{width:72px;height:72px;border-radius:50%;border:2px dashed var(--ht-neutral-400);display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--ht-amber-700);font-family:var(--ht-font-serif);background:transparent}[data-theme=dark] .dyn-add-slot .add-circle{border-color:#2A2A26;color:var(--ht-amber-400)}.dyn-add-slot:hover .add-circle{border-color:var(--ht-amber-500);border-style:solid;background:rgba(212,162,74,.08)}.dyn-add-slot .add-label{font-family:var(--ht-font-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ht-fg-secondary);text-align:center;line-height:1.3}@media (max-width:900px){.dyn-tree-rich{margin:16px 20px 80px}.dyn-gen-row-wrap{grid-template-columns:1fr;gap:16px;padding:24px 0}.dyn-gen-label-rich .roman{font-size:32px}}.dyn-tree{margin:24px 64px 64px;max-width:1320px;display:flex;flex-direction:column;gap:24px}.dyn-gen-divider{display:flex;align-items:baseline;gap:16px;padding-bottom:12px;border-bottom:1px dashed var(--ht-border-subtle)}[data-theme=dark] .dyn-gen-divider{border-bottom-color:#2A2A26}.dyn-gen-divider .roman{font-family:var(--ht-font-serif);font-style:italic;font-size:28px;color:var(--ht-amber-700);letter-spacing:.04em}[data-theme=dark] .dyn-gen-divider .roman{color:var(--ht-amber-400)}.dyn-gen-divider .name{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ht-fg-secondary)}[data-theme=dark] .dyn-gen-divider .name{color:var(--ht-neutral-300)}.dyn-gen-divider .count{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary)}.dyn-gen-row{display:flex;flex-wrap:wrap;gap:32px 28px;padding:8px 0 16px}.dyn-person{background:transparent;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;width:120px;transition:opacity .2s ease,transform .2s ease}.dyn-person:hover{transform:translateY(-3px)}.dyn-person.dim{opacity:.25}.dyn-person.hl{opacity:1}.dyn-person .portrait{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--ht-font-serif);font-style:italic;font-weight:500;font-size:22px;color:white;background-size:cover;background-position:50%;position:relative;box-shadow:0 4px 14px -4px rgba(20,18,12,.35)}.dyn-person.deceased .portrait{filter:grayscale(.45)}.dyn-person.you .portrait{outline:3px solid var(--ht-amber-500);outline-offset:3px}.dyn-person .label{text-align:center;max-width:120px}.dyn-person .label .nm{font-family:var(--ht-font-sans);font-size:13px;font-weight:500;color:var(--ht-fg-primary);line-height:1.2}[data-theme=dark] .dyn-person .label .nm{color:var(--ht-neutral-50)}.dyn-person.you .label .nm{color:var(--ht-amber-700)}[data-theme=dark] .dyn-person.you .label .nm{color:var(--ht-amber-400)}.dyn-person .label .dt{color:var(--ht-fg-tertiary);margin-top:2px;line-height:1.3}.dyn-person .label .dt,.dyn-person .label .stats{font-family:var(--ht-font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.dyn-person .label .stats{color:var(--ht-amber-700);margin-top:4px}[data-theme=dark] .dyn-person .label .stats{color:var(--ht-amber-400)}.p-sepia{background:linear-gradient(135deg,#6F4A3A,#15203D)}.p-cream{background:linear-gradient(135deg,#C99B5A,#8B6543)}.p-amber{background:linear-gradient(135deg,#D4A24A,#73531D)}.p-warm{background:linear-gradient(135deg,#BE8E3A,#4A360F)}.p-iron{background:linear-gradient(135deg,#4D597A,#25304F)}.p-honey{background:linear-gradient(135deg,#E3C57B,#BE8E3A)}.p-clay{background:linear-gradient(135deg,#B58A4F,#6F4A3A)}.p-rose{background:linear-gradient(135deg,#C99B5A,#B58A4F)}.p-photo{background-color:var(--ht-neutral-200);color:transparent}.dyn-empty{margin:60px 64px;max-width:720px;padding:48px 40px;text-align:center;background:var(--ht-bg-elevated);border:1px dashed var(--ht-border-strong);border-radius:24px}[data-theme=dark] .dyn-empty{background:#131312;border-color:#2A2A26}.dyn-empty .icon{font-family:var(--ht-font-serif);font-style:italic;font-size:48px;color:var(--ht-amber-700);margin-bottom:16px}[data-theme=dark] .dyn-empty .icon{color:var(--ht-amber-400)}.dyn-empty h2{font-family:var(--ht-font-sans);font-weight:600;font-size:28px;margin:0 0 12px;color:var(--ht-fg-primary)}[data-theme=dark] .dyn-empty h2{color:var(--ht-neutral-50)}.dyn-empty h2 em{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;color:var(--ht-amber-700)}[data-theme=dark] .dyn-empty h2 em{color:var(--ht-amber-400)}.dyn-empty p{font-size:15px;color:var(--ht-fg-secondary);margin:0 0 24px;line-height:1.6}[data-theme=dark] .dyn-empty p{color:var(--ht-neutral-300)}.dyn-overlay{position:fixed;inset:0;background:rgba(15,14,12,.5);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;animation:dyn-fade .18s ease-out}@keyframes dyn-fade{0%{opacity:0}to{opacity:1}}.dyn-modal{background:var(--ht-bg-elevated);border-radius:24px;max-width:560px;width:100%;max-height:90vh;overflow:auto;padding:40px;box-shadow:0 24px 64px -16px rgba(20,18,12,.5);position:relative}[data-theme=dark] .dyn-modal{background:#161614}.dyn-modal .close{position:absolute;top:18px;right:18px;width:36px;height:36px;border-radius:50%;border:none;background:var(--ht-bg-sunken);cursor:pointer;font-size:18px;line-height:1;color:var(--ht-fg-secondary)}[data-theme=dark] .dyn-modal .close{background:#1F1F1C;color:var(--ht-neutral-300)}.dyn-modal .close:hover{background:var(--ht-neutral-200)}.dyn-modal .portrait-big{width:120px;height:120px;border-radius:50%;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;font-family:var(--ht-font-serif);font-style:italic;font-size:36px;color:white;background-size:cover;background-position:50%;box-shadow:0 8px 24px -8px rgba(20,18,12,.4)}.dyn-modal h2{font-family:var(--ht-font-sans);font-weight:600;font-size:28px;text-align:center;margin:0 0 6px;color:var(--ht-fg-primary)}[data-theme=dark] .dyn-modal h2{color:var(--ht-neutral-50)}.dyn-modal .relation{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ht-amber-700);text-align:center;margin-bottom:8px}[data-theme=dark] .dyn-modal .relation{color:var(--ht-amber-400)}.dyn-modal .dates{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary);text-align:center;margin-bottom:28px}.dyn-modal .notes{font-family:var(--ht-font-serif);font-style:italic;font-size:16px;line-height:1.6;color:var(--ht-fg-secondary);text-align:center;padding:16px 0 24px;border-top:1px solid var(--ht-neutral-100);border-bottom:1px solid var(--ht-neutral-100);margin-bottom:24px}[data-theme=dark] .dyn-modal .notes{color:var(--ht-neutral-300);border-color:#1F1F1C}.dyn-modal .gallery-strip{margin:0 0 24px}.dyn-modal .gallery-strip h3{font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ht-fg-secondary);margin:0 0 12px}[data-theme=dark] .dyn-modal .gallery-strip h3{color:var(--ht-fg-tertiary)}.dyn-modal .gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.dyn-modal .gallery-grid .thumb{aspect-ratio:1;background:var(--ht-bg-sunken);border-radius:8px;overflow:hidden;background-size:cover;background-position:50%}[data-theme=dark] .dyn-modal .gallery-grid .thumb{background-color:#1F1F1C}.dyn-modal .gallery-empty{font-family:var(--ht-font-serif);font-style:italic;font-size:13px;color:var(--ht-fg-tertiary);text-align:center;padding:12px 0}.dyn-modal .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.dyn-modal .actions button{padding:12px 22px;border-radius:999px;border:1px solid var(--ht-border-strong);background:transparent;cursor:pointer;font-family:var(--ht-font-sans);font-size:13px;font-weight:500;color:var(--ht-fg-primary)}[data-theme=dark] .dyn-modal .actions button{border-color:#2A2A26;color:var(--ht-border-subtle)}.dyn-modal .actions button:hover{border-color:var(--ht-fg-tertiary)}.dyn-modal .actions button.danger{border-color:rgba(194,75,59,.4);color:var(--ht-danger)}.dyn-modal .actions button.primary{background:var(--ht-neutral-900);color:var(--ht-amber-400);border-color:var(--ht-fg-primary)}[data-theme=dark] .dyn-modal .actions button.primary{background:var(--ht-bg-base);color:var(--ht-amber-700);border-color:var(--ht-neutral-50)}.dyn-modal h2.form-title{text-align:left;font-size:24px;margin-bottom:20px}.dyn-modal h2.form-title em{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;color:var(--ht-amber-700)}[data-theme=dark] .dyn-modal h2.form-title em{color:var(--ht-amber-400)}.dyn-form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.dyn-form-field label{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-secondary)}[data-theme=dark] .dyn-form-field label{color:var(--ht-fg-tertiary)}.dyn-form-field input,.dyn-form-field select,.dyn-form-field textarea{font-family:var(--ht-font-sans);font-size:15px;padding:12px 16px;background:var(--ht-bg-base);border:1px solid var(--ht-border-subtle);border-radius:12px;color:var(--ht-fg-primary);outline:none}[data-theme=dark] .dyn-form-field input,[data-theme=dark] .dyn-form-field select,[data-theme=dark] .dyn-form-field textarea{background:#1A1A18;border-color:#2A2A26;color:var(--ht-neutral-50)}.dyn-form-field input:focus,.dyn-form-field select:focus,.dyn-form-field textarea:focus{border-color:var(--ht-amber-500)}.dyn-form-error{font-size:13px;color:var(--ht-danger);margin-top:8px}.dyn-fab{position:fixed;bottom:32px;right:32px;padding:14px 24px;background:var(--ht-neutral-900);color:var(--ht-amber-400);border:none;border-radius:999px;cursor:pointer;font-family:var(--ht-font-sans);font-size:14px;font-weight:500;display:flex;align-items:center;gap:10px;box-shadow:0 12px 28px -8px rgba(20,18,12,.4);z-index:50}[data-theme=dark] .dyn-fab{background:var(--ht-bg-base);color:var(--ht-amber-700)}.dyn-fab:hover{transform:translateY(-2px);transition:transform .15s ease}.dyn-fab svg{display:block}@media (max-width:640px){.dyn-tree{margin:16px 20px 80px}.dyn-empty{margin:32px 20px;padding:32px 24px}.dyn-modal{padding:28px 22px}.dyn-fab{bottom:20px;right:20px}}.legal-page{min-height:100vh;background:var(--ht-bg-base);color:var(--ht-fg-primary)}.legal-top{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--ht-border-subtle);max-width:880px;margin:0 auto}.legal-brand{font-family:var(--ht-font-serif);font-size:22px;color:var(--ht-fg-primary);text-decoration:none}.legal-brand em{color:var(--ht-amber-600);font-style:italic}.legal-nav{display:flex;gap:18px}.legal-nav a{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ht-fg-secondary);text-decoration:none}.legal-nav a:hover{color:var(--ht-amber-700)}.legal-content{max-width:760px;margin:0 auto;padding:48px 32px 96px;font-family:var(--ht-font-sans);font-size:15px;line-height:1.65;color:var(--ht-fg-primary)}.legal-content h1{font-family:var(--ht-font-serif);font-style:italic;font-weight:400;font-size:44px;letter-spacing:-.02em;line-height:1.05;color:var(--ht-fg-primary);margin:0 0 8px}.legal-content .legal-sub{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ht-fg-tertiary);margin-bottom:40px}.legal-content h2{font-family:var(--ht-font-sans);font-size:22px;letter-spacing:-.01em;margin:40px 0 12px;padding-top:16px;border-top:1px solid var(--ht-border-subtle)}.legal-content h2,.legal-content h3{font-weight:600;color:var(--ht-fg-primary)}.legal-content h3{font-size:16px;margin:24px 0 8px}.legal-content p{margin:0 0 14px}.legal-content ul{margin:0 0 14px;padding-left:22px}.legal-content li{margin-bottom:8px}.legal-content strong{color:var(--ht-fg-primary)}.legal-content em{font-style:italic}.legal-content a{color:var(--ht-amber-700)}.legal-content code{font-family:var(--ht-font-mono);font-size:13px;background:var(--ht-bg-sunken);padding:1px 6px;border-radius:4px}.legal-note{margin:24px 0;padding:16px 20px;background:rgba(212,162,74,.08);border:1px solid rgba(212,162,74,.3);border-radius:12px;font-size:14px;color:var(--ht-fg-secondary)}.legal-note strong{color:var(--ht-amber-800)}.legal-placeholder{background:rgba(194,75,59,.1);border-bottom:1px dashed var(--ht-danger);padding:0 4px;color:var(--ht-danger);font-weight:500}.legal-foot{max-width:760px;margin:0 auto;padding:24px 32px 48px;border-top:1px solid var(--ht-border-subtle);font-family:var(--ht-font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ht-fg-tertiary)}.ht-toaster{position:fixed;top:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 40px));pointer-events:none}.ht-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-left-width:3px;border-radius:var(--ht-radius-lg);box-shadow:var(--ht-shadow-e4);color:var(--ht-fg-primary);font-size:14px;line-height:1.45;cursor:pointer;animation:ht-toast-in .32s var(--ht-ease-emphasized)}.ht-toast--success{border-left-color:var(--ht-success)}.ht-toast--error{border-left-color:var(--ht-danger)}.ht-toast--info{border-left-color:var(--ht-amber-500)}.ht-toast-icon{flex:0 0 20px;width:20px;height:20px;border-radius:var(--ht-radius-full);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ht-neutral-0);margin-top:1px}.ht-toast--success .ht-toast-icon{background:var(--ht-success)}.ht-toast--error .ht-toast-icon{background:var(--ht-danger)}.ht-toast--info .ht-toast-icon{background:var(--ht-amber-500)}.ht-toast-msg{flex:1}@keyframes ht-toast-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.ht-confirm-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--ht-neutral-950) 55%,transparent);backdrop-filter:blur(3px);animation:ht-fade-in .2s var(--ht-ease-standard)}.ht-confirm-card{width:100%;max-width:420px;background:var(--ht-bg-elevated);border:1px solid var(--ht-border-subtle);border-radius:var(--ht-radius-xl);box-shadow:var(--ht-shadow-e5,var(--ht-shadow-e4));padding:28px;animation:ht-confirm-in .28s var(--ht-ease-emphasized)}.ht-confirm-title{margin:0 0 10px;font-family:var(--ht-font-serif);font-style:italic;font-weight:500;font-size:24px;letter-spacing:-.01em;color:var(--ht-fg-primary)}.ht-confirm-msg{margin:0 0 24px;font-size:15px;line-height:1.55;color:var(--ht-fg-secondary);white-space:pre-line}.ht-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.ht-btn{padding:10px 20px;border-radius:var(--ht-radius-full);font-family:var(--ht-font-sans);font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .18s var(--ht-ease-standard)}.ht-btn--ghost{background:transparent;border-color:var(--ht-border-subtle);color:var(--ht-fg-secondary)}.ht-btn--ghost:hover{background:var(--ht-bg-sunken);color:var(--ht-fg-primary)}.ht-btn--primary{background:var(--ht-amber-500);color:var(--ht-amber-950)}.ht-btn--primary:hover{background:var(--ht-amber-400)}.ht-btn--danger{background:var(--ht-danger);color:var(--ht-neutral-0)}.ht-btn--danger:hover{filter:brightness(1.08)}@keyframes ht-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ht-confirm-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.ht-prompt-input{width:100%;margin:4px 0;padding:11px 14px;border-radius:10px;border:1px solid var(--ht-border-strong);background:var(--ht-bg-base);color:var(--ht-fg-primary);font-family:var(--ht-font-sans);font-size:14px;outline:none;box-sizing:border-box}.ht-prompt-input:focus{border-color:var(--ht-amber-500)}.mobile-tabbar{display:none}@media (max-width:768px){.appbar .modules{display:none}.app{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.mobile-tabbar{display:flex;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(10px + env(safe-area-inset-bottom));z-index:80;width:calc(100% - 24px);max-width:460px;justify-content:space-around;align-items:stretch;gap:2px;padding:8px;background:color-mix(in srgb,var(--ht-bg-elevated) 88%,transparent);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--ht-border-subtle);border-radius:26px;box-shadow:0 10px 34px rgba(0,0,0,.16)}.mtab{flex:1;flex-direction:column;gap:4px;padding:6px 2px 4px;text-decoration:none;color:var(--ht-fg-tertiary);transition:color .15s ease}.mtab,.mtab-icon{display:flex;align-items:center}.mtab-icon{justify-content:center;width:46px;height:30px;border-radius:999px;transition:background .18s ease}.mtab-icon svg{width:21px;height:21px}.mtab-label{font-family:var(--ht-font-mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}.mtab.active .mtab-icon{background:color-mix(in srgb,currentColor 16%,transparent)}.mtab.active .mtab-label{font-weight:600}.mod-app,.tribe-app,.vlt-app{overflow-x:hidden}.appbar{padding-top:env(safe-area-inset-top)}.mod-hero,.vlt-hero{padding:24px 18px 14px}.mod-hero h1,.vlt-hero h1{font-size:clamp(26px,7.5vw,34px)}.mod-hero p,.vlt-hero p{font-size:15px}.vault-body{padding:18px;gap:36px}.section-bar{flex-direction:column;align-items:flex-start;gap:6px}.section-bar h3{font-size:24px}.section-head,.sources-grid,.suggest-grid{grid-template-columns:1fr}.section-head{gap:10px;padding:22px 18px 16px;align-items:start}.section-head .title{font-size:clamp(30px,9vw,44px);line-height:1.04}.section-head .subtitle{white-space:normal}.section-head .deck{text-align:left}.vlt-toolbar .seg,.vlt-toolbar .trash-toggle,.vlt-toolbar select{display:none}.themes-grid{grid-template-columns:repeat(2,1fr)}.vault-suggestions{display:none}.vlt-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}.record-bar{grid-template-columns:1fr;gap:16px}.record-info .rt{font-size:24px}.record-waves{display:none}.dyn-empty{margin-left:16px!important;margin-right:16px!important}.capsules-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stories-body{padding:18px;gap:36px}.tribe-filters-row{margin-left:18px!important;margin-right:18px!important;flex-wrap:wrap!important;row-gap:8px!important}.tribe-filters-row>button{margin-left:0!important}.dyn-fab{bottom:calc(100px + env(safe-area-inset-bottom))!important}.tribe-canvas-wrap{margin-left:12px!important;margin-right:12px!important}.transmit-grid{grid-template-columns:repeat(2,1fr)!important}.featured-card h2{font-size:clamp(28px,9vw,40px)!important;word-wrap:break-word;overflow-wrap:anywhere}.featured-card .meta{flex-wrap:wrap;gap:8px 14px!important}.featured-card .actions{flex-wrap:wrap;gap:8px!important}.featured-card .ghost-on-dark,.featured-card .play-btn{padding:11px 16px!important;font-size:13px!important;flex:0 1 auto}.landing-nav-links{display:none!important}.landing-nav-cta{font-size:12px!important;padding:8px 14px!important}.overlay{align-items:stretch}.overlay .sheet{margin:12px!important;grid-template-columns:1fr!important;border-radius:18px!important}.overlay .close{top:12px!important;right:12px!important;width:36px!important;height:36px!important}.bio{padding:22px 20px!important;gap:16px!important}.bio .portrait-big{width:140px!important;height:140px!important;font-size:56px!important;margin-bottom:8px!important}.bio h2{font-size:28px!important;line-height:1.1!important;overflow-wrap:anywhere}.bio .b-bio,.bio h2{word-break:break-word}.bio .b-bio{font-size:14px!important}.bio-stats{gap:0!important}.bio-stat{padding:14px 4px!important;min-width:0}.bio-stat .v{font-size:26px!important}.bio-stat .k{font-size:9px!important;letter-spacing:.14em!important}.photo-collage{grid-template-columns:repeat(3,1fr)!important;grid-auto-rows:auto!important;gap:6px!important}.photo-collage .ph{aspect-ratio:1/1;grid-column:span 1!important;grid-row:span 1!important}.featured-storyteller{grid-template-columns:1fr!important;gap:18px!important;padding:24px!important}.fs-portrait{width:160px!important;height:160px!important;font-size:64px!important;justify-self:center}.fs-body h2{font-size:28px!important;word-break:break-word}.fs-body p{font-size:14px!important;max-width:100%!important}.fs-stats{flex-wrap:wrap;gap:18px 28px!important}.fs-stats .v{font-size:24px!important}.album-gallery{grid-template-columns:1fr!important;gap:14px!important;width:100%!important}.album-gallery .album-card{width:100%!important;max-width:none!important;min-width:0!important}.album-gallery .alb-preview{aspect-ratio:16/9!important;width:100%!important}.album-gallery .alb-title{font-size:17px;-webkit-line-clamp:1;line-clamp:1}.heir-activation-section{padding-left:16px!important;padding-right:16px!important}.heir-bundle-section{margin-left:16px!important;margin-right:16px!important;padding:20px!important}.heir-bundle-section h2{font-size:18px!important}.heir-bundle-section p{font-size:15px!important;font-style:normal!important}.vlt-upload-progress{position:fixed!important;left:12px!important;right:12px!important;bottom:calc(100px + env(safe-area-inset-bottom))!important;z-index:70;margin:0!important;box-shadow:0 14px 36px rgba(0,0,0,.28);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);background:color-mix(in srgb,var(--ht-bg-elevated) 92%,transparent)!important}}.friends-constellation-section{margin:24px 64px 64px}@media (max-width:760px){.friends-constellation-section{margin:16px 6px 56px}}.bday-overlay{position:fixed;inset:0;z-index:260;background:radial-gradient(ellipse at center,#2a1612 0,#14080a 70%,#050203 100%);color:#F4ECDC;font-family:var(--ht-font-serif);display:flex;flex-direction:column;overflow:hidden}.bday-header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#E3B85A}.bday-mark{opacity:.7}.bday-banner{letter-spacing:.32em;font-weight:600}.bday-close{width:36px;height:36px;border-radius:999px;border:1px solid rgba(244,236,220,.18);background:rgba(0,0,0,.4);color:#F4ECDC;cursor:pointer;font-size:16px}.bday-close:hover{background:rgba(0,0,0,.6)}.bday-stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:12px 24px 64px;position:relative}.bday-fadein{animation:bday-fade .7s ease both}@keyframes bday-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.bday-card{text-align:center;max-width:640px;padding:32px;display:flex;flex-direction:column;align-items:center;gap:14px}.bday-eyebrow{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:#E3B85A;opacity:.85}.bday-title{font-size:clamp(34px,5vw,56px);line-height:1.1;font-weight:500;letter-spacing:-.01em;margin:0}.bday-age,.bday-title{font-family:var(--ht-font-serif)}.bday-age{font-size:clamp(96px,16vw,180px);font-weight:600;line-height:1;color:#E3B85A;text-shadow:0 4px 24px rgba(227,184,90,.4);margin:8px 0}.bday-name{font-family:var(--ht-font-serif);font-size:clamp(22px,2.6vw,32px);font-style:italic;opacity:.95}.bday-birthinfo{font-family:var(--ht-font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;opacity:.6}.bday-btn-primary{margin-top:12px;padding:14px 28px;border-radius:999px;border:none;background:linear-gradient(135deg,#E3B85A,#D4A24A);color:#1A1208;font-family:var(--ht-font-sans);font-weight:600;font-size:14px;letter-spacing:.04em;cursor:pointer;box-shadow:0 8px 24px rgba(227,184,90,.3);transition:transform .15s ease,box-shadow .15s ease}.bday-btn-primary:hover{transform:translateY(-1px);box-shadow:0 10px 30px rgba(227,184,90,.45)}.bday-candle-instr{font-family:var(--ht-font-serif);font-size:clamp(18px,2vw,24px);opacity:.92}.bday-candle-instr strong{color:#E3B85A;font-weight:600}.bday-candle-instr em{font-style:italic;opacity:.7}.bday-cake{position:relative;width:clamp(280px,40vw,460px);display:flex;flex-direction:column;align-items:center}.bday-cake-small{width:clamp(180px,22vw,260px)}.bday-candles{display:flex;justify-content:center;align-items:flex-end;gap:clamp(6px,1.2vw,14px);margin-bottom:-2px;z-index:2}.bday-candle{position:relative;width:clamp(10px,1.4vw,14px);height:clamp(40px,6vw,60px);display:flex;flex-direction:column;align-items:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bday-stick{position:absolute;bottom:0;width:100%;height:78%;background:repeating-linear-gradient(180deg,#E07A5F,#E07A5F 4px,#F4ECDC 0,#F4ECDC 8px);border-radius:2px;box-shadow:inset -2px 0 0 rgba(0,0,0,.15)}.bday-wick{position:absolute;top:16%;width:1.5px;height:8%;background:#2A1F12;z-index:3}.bday-flame{position:absolute;top:-10%;width:60%;height:22%;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(ellipse at 50% 70%,#FFE99E 0,#FFB23E 50%,#E0612A 100%);box-shadow:0 0 18px 4px rgba(255,178,62,.6),0 0 30px 12px rgba(255,100,0,.18);animation:bday-flicker .28s ease-in-out infinite alternate;transform-origin:50% 100%}@keyframes bday-flicker{0%{transform:scaleX(.95) rotate(-1deg)}to{transform:scale(1.05,1.1) rotate(1deg)}}.bday-candle.out .bday-flame{display:none}.bday-smoke{position:absolute;top:-8%;width:6px;height:18px;border-radius:50%;background:rgba(244,236,220,.25);filter:blur(3px);animation:bday-smoke 1.4s ease-out forwards}@keyframes bday-smoke{0%{opacity:.6;transform:translateY(0) scale(.6)}to{opacity:0;transform:translateY(-30px) scale(1.4)}}.bday-cake-top{width:78%;height:clamp(50px,7vw,78px);background:linear-gradient(180deg,#F4ECDC,#E8DDC3);border-radius:8px 8px 4px 4px;position:relative;box-shadow:0 8px 0 -2px #D4A24A,0 14px 30px rgba(0,0,0,.4)}.bday-cake-top:before{content:"";position:absolute;inset:-2px 0 auto 0;height:14px;background:radial-gradient(circle at 12% 100%,#E07A5F 0 6px,transparent 6px),radial-gradient(circle at 30% 100%,#3F8F5B 0 5px,transparent 5px),radial-gradient(circle at 48% 100%,#A55BC4 0 6px,transparent 6px),radial-gradient(circle at 68% 100%,#E3B85A 0 5px,transparent 5px),radial-gradient(circle at 88% 100%,#3A6CC2 0 6px,transparent 6px),linear-gradient(180deg,#F4ECDC,#F4ECDC);border-radius:8px 8px 0 0}.bday-cake-bot{width:100%;height:clamp(60px,9vw,100px);background:linear-gradient(180deg,#E07A5F,#B45A3F);border-radius:6px;box-shadow:0 20px 40px rgba(0,0,0,.5),inset 0 2px 0 rgba(255,255,255,.18);position:relative}.bday-cake-bot:after{content:"";position:absolute;inset:50% 0 auto 0;height:4px;background:rgba(244,236,220,.4)}.bday-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bday-confetti span{position:absolute;top:-20px;border-radius:2px;animation:bday-confetti-fall linear forwards}@keyframes bday-confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(110vh) rotate(2turn);opacity:.7}}.bday-card-wish{animation:bday-pop .6s cubic-bezier(.34,1.56,.64,1) both}@keyframes bday-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.bday-wish-title{font-family:var(--ht-font-serif);font-size:clamp(36px,5vw,56px);font-weight:500;font-style:italic;color:#E3B85A;text-shadow:0 4px 28px rgba(227,184,90,.5);margin:0}.bday-wall-stage{justify-content:flex-start;padding-top:32px;overflow-y:auto}.bday-wall-title{font-family:var(--ht-font-serif);font-size:clamp(28px,3.6vw,42px);font-weight:500;margin:0}.bday-wall-sub{font-family:var(--ht-font-mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;opacity:.6;margin-bottom:8px}.bday-wall-empty{font-family:var(--ht-font-serif);font-style:italic;opacity:.7;max-width:520px;text-align:center;padding:28px;border:1px dashed rgba(244,236,220,.25);border-radius:12px}.bday-wall-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px;width:100%;max-width:1100px;padding:8px 0 24px}.bday-vow{position:relative;background:#F4ECDC;color:#2A1F12;padding:26px 18px 16px;border-radius:4px;box-shadow:0 10px 26px rgba(0,0,0,.35);transform:rotate(var(--rot,-1.2deg));font-family:"Caveat",var(--ht-font-serif);display:flex;flex-direction:column;gap:12px}.bday-vow:nth-child(2n){--rot:1.6deg}.bday-vow:nth-child(3n){--rot:-2.1deg}.bday-vow:nth-child(5n){--rot:0.8deg}.bday-vow-tape{position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(-4deg);width:70px;height:18px;background:rgba(227,184,90,.55);border-radius:1px;box-shadow:0 2px 4px rgba(0,0,0,.15)}.bday-vow-text{font-size:20px;line-height:1.3;margin:0;white-space:pre-wrap;word-break:break-word}.bday-vow-author{display:flex;align-items:center;gap:8px;font-family:var(--ht-font-sans);font-size:13px;border-top:1px dashed rgba(42,31,18,.2);padding-top:10px}.bday-vow-avatar{width:26px;height:26px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#F4ECDC;font-weight:600;font-size:12px}.bday-vow-name{font-weight:500}.bday-continue{margin-top:8px}.bday-dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:5}.bday-dot{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--ht-font-mono);font-size:11px;background:rgba(244,236,220,.1);color:rgba(244,236,220,.5);border:1px solid rgba(244,236,220,.18)}.bday-dot.active{background:#E3B85A;color:#1A1208;border-color:#E3B85A}