@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Noto+Serif:ital,wght@0,500;0,600;0,700;1,600&display=swap";.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{color:#4b3729;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--hk-brand:#8c5e3c;--hk-accent:#9c5019;--hk-bg:#fffbff;--hk-surface:#fdf9f2;--hk-stone:#ece8dd;--hk-ink:#2f251c;--hk-muted:#6f5c4d;--hk-border:#8c5e3c33;--ink:var(--hk-ink);--muted:var(--hk-muted);--paper:#fdf9f2d6;--paper-strong:#fdf9f2f7;--border:var(--hk-border);--accent:#d1874f;--accent-strong:var(--hk-accent);--mint:#dbe8d7;--lavender:#e8e1ee;--shadow:0 24px 60px #60452f1f;background:linear-gradient(#f7ead7cc 0%,#f8eee1c7 54%,#dce8f3c7 100%),url(/site_bg.png) 50%/cover no-repeat fixed,radial-gradient(circle at 0 0,#fce5bfa6,#0000 34%),radial-gradient(circle at 100% 100%,#d4e4f7c7,#0000 34%),linear-gradient(#f7ead7 0%,#f8eee1 54%,#dce8f3 100%);font-family:Manrope,system-ui,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;color:var(--ink);margin:0}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,.interactive{cursor:pointer}input,textarea,select{border:1px solid var(--border);width:100%;color:var(--ink);background:#ffffffd9;border-radius:20px;margin-top:.45rem;padding:.95rem 1rem}textarea{resize:vertical}h1,h2,h3,strong{font-family:Noto Serif,Georgia,serif}h1,h2,h3,p{margin:0}.landing-page,.portal-page,.fullscreen-shell{min-height:100vh}.landing-frame,.content-shell{max-width:1480px;margin:0 auto;padding:1.5rem}.topbar,.hero-card,.panel-card,.metric-card,.feature-card,.stat-card,.state-card{background:var(--paper);border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.topbar{border-radius:34px;justify-content:space-between;align-items:center;gap:1rem;padding:1.35rem 1.8rem;display:flex}.landing-bar,.portal-bar{z-index:20;position:sticky;top:1rem}.brand-lockup h1,.brand-lockup h2{font-size:clamp(1.9rem,2vw,3rem);line-height:1}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent-strong);margin:0 0 .45rem;font-size:.74rem}.build-id-under-portal{color:var(--muted);margin:.15rem 0 0;font-size:.82rem}.hero-nav,.portal-nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}.hero-nav a{color:#4b3729e0;border-radius:999px;padding:.8rem 1rem;transition:background .18s,transform .18s}.hero-nav a:hover,.hero-nav a.active{background:#ffffffb3;transform:translateY(-1px)}.portal-actions{flex-shrink:0;align-items:center;gap:1rem;display:flex}.portal-actions-right,.portal-notification-menu{position:relative}.portal-bell-button{align-items:center;gap:.6rem;padding-right:1rem;display:inline-flex;position:relative}.portal-bell-button.is-open{background:#ffffffdb}.portal-bell-icon{justify-content:center;align-items:center;display:inline-flex}.portal-bell-icon svg{width:1.05rem;height:1.05rem}.portal-bell-label{font-weight:600}.portal-notification-badge{color:#fff;background:linear-gradient(135deg,#c45c23 0%,#ed9d68 100%);border-radius:999px;justify-content:center;align-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;font-size:.74rem;font-weight:700;line-height:1;display:inline-flex}.portal-notification-panel{border:1px solid var(--border);z-index:55;background:#fffaf4fa;border-radius:22px;width:min(25rem,100vw - 2rem);padding:.85rem;position:absolute;top:calc(100% + .8rem);left:50%;transform:translate(-50%);box-shadow:0 18px 40px #3726192e}.portal-notification-panel-head{justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.25rem .2rem .9rem;display:flex}.portal-notification-panel-head p{color:var(--muted);margin:.2rem 0 0;font-size:.88rem}.portal-notification-list{gap:.6rem;display:grid}.portal-notification-item{text-align:left;width:100%;color:var(--ink);background:#ffffffd1;border:1px solid #a0826738;border-radius:16px;gap:.3rem;padding:.85rem .95rem;transition:transform .16s,border-color .16s,background-color .16s;display:grid}.portal-notification-item:hover{background:#fffffff5;border-color:#c45c2359;transform:translateY(-1px)}.portal-notification-item.is-unread{background:#fff4ebf5;border-color:#c45c234d}.portal-notification-item strong{font-size:.96rem}.portal-notification-item span:last-child{color:var(--muted);font-size:.8rem}.portal-notification-type{letter-spacing:.02em;border-radius:999px;justify-self:flex-start;padding:.2rem .55rem;font-size:.73rem;font-weight:700}.portal-notification-type.type-direct-message{color:#31558f;background:#e2e9faf2}.portal-notification-type.type-bulletin-post,.portal-notification-type.type-bulletin-mention{color:#915126;background:#ffeedcf5}.portal-notification-type.type-join-request{color:#466432;background:#ddecd2f5}.portal-notification-type.type-app-update{color:#6f4690;background:#f0e6fcf5}.portal-notification-empty{margin:0;padding:.45rem .25rem .2rem}.portal-nav-primary{flex-wrap:nowrap;flex:1;justify-content:flex-end;min-width:0}.portal-nav-menu-btn{border:1px solid var(--border);color:#4b3729eb;cursor:pointer;background:#ffffff8c;border-radius:999px;justify-content:center;align-items:center;padding:.65rem .75rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:background .18s,transform .18s;display:inline-flex}.portal-nav-menu-btn:hover{background:#ffffffd9;transform:translateY(-1px)}.portal-nav-menu-icon{flex-direction:column;gap:4px;width:18px;display:flex}.portal-nav-menu-icon span{background:#4b3729bf;border-radius:1px;height:2px;display:block}.portal-nav-check-updates{padding:.8rem 1rem}.portal-nav-backdrop{z-index:45;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#261c1559;position:fixed;inset:0}.portal-nav-drawer{z-index:46;background:var(--paper-strong);border-right:1px solid var(--border);flex-direction:column;width:min(20rem,92vw);max-width:100%;animation:.2s ease-out portal-drawer-in;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:8px 0 32px #0000001f}@keyframes portal-drawer-in{0%{opacity:.9;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.portal-nav-drawer-head{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.1rem;display:flex}.portal-nav-drawer-title{font-family:var(--font-fraunces,"Fraunces", Georgia, serif);color:var(--ink);font-size:1.15rem;font-weight:600}.portal-nav-drawer-links{flex-direction:column;gap:.25rem;padding:.75rem;display:flex;overflow-y:auto}.portal-nav-drawer-links a{color:#4b3729eb;border-radius:12px;padding:.85rem 1rem;font-weight:500;transition:background .16s;display:block}.portal-nav-drawer-links a:hover,.portal-nav-drawer-links a.active{background:#ffffffbf}.portal-nav-drawer-profile{border-bottom:1px solid var(--border);padding:.9rem 1.1rem .3rem}.portal-nav-drawer-profile .helper-text{margin-top:.2rem}.portal-nav-drawer-actions{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;padding:.85rem 1rem;display:flex}.portal-nav-drawer-actions .ghost-button{width:100%}.hero-card{background-color:#d5ecfb;background-image:url(/family_hero.png);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:40px;align-items:flex-end;min-height:760px;margin-top:1.4rem;padding:3rem 2.2rem 8.2rem;display:flex;position:relative;overflow:hidden}.hero-card:before{content:"";background:linear-gradient(#16110c14 0%,#291c138a 100%),linear-gradient(120deg,#f8cd9c38,#f5e7d414 28%,#c8dded1f 100%);position:absolute;inset:0}.hero-copy,.hero-visual{z-index:2;position:relative}.hero-copy{color:#fff;align-self:flex-end;max-width:760px}.hero-copy .eyebrow{color:#ffefdfe0}.hero-copy h2{max-width:11ch;font-size:clamp(3.4rem,6vw,5.8rem);line-height:.96}.hero-copy p:last-of-type{color:#fff7ece6;max-width:58ch;margin-top:1rem}.hero-actions,.stack-row,.form-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.hero-actions{margin-top:1.5rem}.cta-button,.ghost-button,.ghost-link{border-radius:999px;transition:transform .16s,background .16s,color .16s}.cta-button{color:#fff;background:linear-gradient(135deg,#f5a05c,#df7d37);border:0;padding:.95rem 1.45rem;font-weight:700;box-shadow:0 16px 28px #cd743538}.ghost-button,.ghost-link{border:1px solid var(--border);background:#ffffffb8;padding:.82rem 1.2rem}.cta-button:hover,.ghost-button:hover,.ghost-link:hover{transform:translateY(-1px)}.hero-visual{position:absolute;inset:0}.hero-stack{gap:1rem;width:min(100%,420px);display:grid;position:absolute;top:2rem;right:2rem}.floating-card{background:#fffbf4c2;border:1px solid #ffffffdb;border-radius:24px;padding:1.2rem;box-shadow:0 16px 32px #5f412c24}.pill{color:#507056;letter-spacing:.14em;text-transform:uppercase;background:#d6ead9f5;border-radius:999px;align-items:center;margin-bottom:.8rem;padding:.38rem .82rem;font-size:.76rem;display:inline-flex}.pill.soft{color:var(--accent-strong);background:#fff0decc}.metrics-grid,.feature-grid,.stats-grid,.content-grid,.messages-layout{gap:1.2rem;display:grid}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:2rem}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.5rem}.metric-card,.feature-card,.stat-card{border-radius:28px;padding:1.35rem 1.35rem 1.45rem}.metric-card strong,.stat-card strong{margin:.45rem 0;font-size:1.5rem;display:block}.feature-card:first-child,.feature-card:nth-child(4){background:linear-gradient(#f8e3d0eb,#fffaf3f5)}.feature-card:nth-child(2),.feature-card:nth-child(5){background:linear-gradient(#fcf6e6eb,#fffaf3f5)}.feature-card:nth-child(3),.feature-card:nth-child(6){background:linear-gradient(#e2dbf8e6,#f5f0fff5)}.feature-card h3{margin-bottom:.55rem}.helper-text,.metric-card p,.feature-card p,.stat-card p,.list-item p,.timeline-card p,.bulletin-post p,.comment-card p,.section-intro p,.hotel-card p,.state-card p{color:var(--muted)}.portal-page{padding:0 1.5rem 1.8rem}.portal-content{padding-top:1.4rem}.page-section{gap:1.2rem;display:grid}.section-intro h1{margin-bottom:.45rem;font-size:clamp(2rem,3vw,3.3rem)}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.content-grid.two-up{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-layout{align-items:start}.messages-layout{grid-template-columns:.85fr .9fr 1.25fr}.messages-conversation-header{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.messages-back-button{flex-shrink:0;display:none}.panel-card{border-radius:32px;padding:1.4rem}.panel-card.accent-warm{background:linear-gradient(#fae7d6eb,#fffaf4f5)}.panel-card.accent-cool{background:linear-gradient(#e2e9fae6,#fafcfffa)}.section-header{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.section-header span{color:var(--muted);font-size:.92rem}.list-stack,.bulletin-stack,.comment-stack,.message-stack{gap:.95rem;display:grid}.list-stack.compact{max-height:420px;overflow:auto}.list-item,.timeline-card,.bulletin-post,.comment-card,.thread-card,.message-bubble,.hotel-card,.profile-summary{border:1px solid var(--border);background:#ffffffad;border-radius:24px;padding:1rem 1.08rem}.list-item,.hotel-card{justify-content:space-between;align-items:center;gap:1rem;display:flex}.timeline-card,.hotel-card{gap:.85rem;display:grid}.profile-summary{gap:1rem;display:grid}.profile-upload-box{gap:.75rem;display:grid}.profile-image-manager{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1.2rem;display:grid}.profile-avatar{object-fit:cover;border:1px solid var(--border);border-radius:28px;width:112px;height:112px;box-shadow:0 16px 28px #60452f1a}.profile-avatar-fallback{color:var(--accent-strong);background:linear-gradient(135deg,#f5a05c33,#ddd6f57a);place-items:center;font-family:Fraunces,Georgia,serif;font-size:2.4rem;display:grid}.profile-avatar-large{width:148px;height:148px}.profile-detail-row{align-items:flex-start}.timeline-meta{justify-items:start;gap:.3rem;display:grid}.event-rsvp-row{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.75rem;display:flex}.event-rsvp-label{flex-direction:column;gap:.25rem;display:flex}.event-rsvp-label select{width:auto;min-width:10rem}.event-rsvp-counts{color:var(--muted);font-size:.9rem}.event-rsvp-summary-button{color:var(--accent-strong);text-align:left;background:0 0;border:0;padding:0;font-weight:700}.event-rsvp-details{border:1px solid var(--border);background:#fffaf4e6;border-radius:16px;gap:.7rem;margin-top:.8rem;padding:.85rem 1rem;display:grid}.event-rsvp-list{gap:.3rem;margin:.4rem 0 0;padding-left:1rem;display:grid}.hotel-booking-actions{margin-top:.85rem}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.full-span,.full-grid{grid-column:1/-1}.checklist{gap:.7rem;margin:0;padding-left:1.1rem;display:grid}.thread-card{text-align:left}.thread-card.selected{background:#ffefe3f0;border-color:#ef98557a}.message-stack{min-height:320px;max-height:420px;margin-bottom:1rem;overflow:auto}.message-bubble{max-width:80%}.message-bubble.outbound{background:#fde8d4f0;margin-left:auto}.message-bubble.inbound{background:#ecf3fff0}.post-header,.inline-comment-form{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.inline-comment-form{flex-wrap:wrap;margin-top:.8rem}.rich-text{color:var(--muted);flex-wrap:wrap;gap:.35rem;display:flex}.inline-mention{color:#8a4b23;cursor:pointer;background:#fff4e3f5;border:0;border-radius:999px;align-items:center;padding:.22rem .65rem;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.mention-user{color:#31558f;background:#e2e9faf2}.mention-asset{color:#3f6c49;background:#d6ead9f5}.mention-event{color:#7c4a8c;background:#f2e0f9f5}.bulletin-image{object-fit:cover;border-radius:20px;width:100%;max-height:320px;margin-top:.9rem;display:block}.edit-post-box{gap:.9rem;display:grid}.upload-card{background:#ffffff7a;border:1px dashed #97755661;border-radius:28px;place-items:center;min-height:220px;display:grid}.upload-card input{margin-top:1rem}.compact-upload{min-height:140px}.upload-card.is-disabled{opacity:.65;pointer-events:none}.attachment-card{gap:1rem}.associated-assets{gap:1rem;width:100%;display:grid}.asset-upload-box{gap:.9rem;display:grid}.asset-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;display:grid}.asset-preview-card{border:1px solid var(--border);background:#ffffffc2;border-radius:22px;gap:.8rem;padding:1rem;display:grid}.asset-thumb-button,.document-preview-button{text-align:left;background:0 0;border:0;padding:0}.asset-thumb{object-fit:cover;border:1px solid var(--border);border-radius:18px;width:100%;height:160px;display:block}.document-preview-button{border:1px dashed var(--border);min-height:160px;color:var(--ink);background:#f7ead780;border-radius:18px;padding:1rem;font-weight:700}.danger-button{color:#9c4329;border-color:#b54e3347}.asset-modal-backdrop{z-index:50;background:#261c159e;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.asset-modal{border:1px solid var(--border);background:var(--paper-strong);width:min(960px,100%);max-height:90vh;box-shadow:var(--shadow);border-radius:28px;padding:1.2rem;overflow:auto}.notification-modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#261c1585;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.notification-modal{border:1px solid var(--border);background:var(--paper-strong);width:min(420px,100%);box-shadow:var(--shadow);border-radius:32px;padding:1.5rem 1.6rem}.notification-modal-inner{flex-direction:column;gap:.6rem;display:flex}.notification-modal-title{color:var(--ink);margin:0;font-family:Fraunces,Georgia,serif;font-size:1.25rem;font-weight:600}.notification-modal--saved .notification-modal-title{color:#2d6a3e}.notification-modal--updated .notification-modal-title{color:var(--accent-strong)}.notification-modal--deleted .notification-modal-title{color:var(--muted)}.notification-modal--error .notification-modal-title{color:#9c4329}.notification-modal-message{color:var(--muted);margin:0;font-size:.95rem;line-height:1.45}.notification-modal-dismiss{align-self:flex-start;margin-top:.5rem}.asset-modal-body{margin-top:1rem}.asset-modal-image,.asset-modal-frame{background:#ffffffd9;border:0;border-radius:18px;width:100%;min-height:60vh}.asset-modal-image{object-fit:contain}.state-card{border-radius:32px;max-width:640px;margin:auto;padding:2rem}.fullscreen-shell{padding:1.5rem;display:grid}.not-found-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.not-found-card{background:var(--paper);border:1px solid var(--border);width:100%;max-width:560px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);text-align:center;border-radius:32px;padding:2rem}.not-found-card .eyebrow,.not-found-card h1{margin-bottom:.5rem}.not-found-description{color:var(--muted);margin-bottom:1.5rem}.not-found-image{border-radius:20px;width:100%;height:auto;margin-bottom:1.5rem;display:block}.not-found-actions{justify-content:center;gap:1rem;display:flex}.error-boundary-shell{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.error-boundary-card{background:var(--paper);border:1px solid var(--border);width:100%;max-width:560px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);text-align:center;border-radius:32px;padding:2rem}.error-boundary-card .eyebrow,.error-boundary-card h1{margin-bottom:.5rem}.error-boundary-description{color:var(--muted);margin-bottom:1.5rem}.error-boundary-image{border-radius:20px;width:100%;height:auto;margin-bottom:1.5rem;display:block}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}@media (width<=1240px){.hero-stack{width:min(100%,320px)}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid.two-up,.messages-layout{grid-template-columns:1fr}}@media (width<=899px){.messages-page .messages-back-button{display:inline-flex}.messages-layout.conversation-open .messages-panel-start,.messages-layout.conversation-open .messages-panel-threads,.messages-layout:not(.conversation-open) .messages-panel-conversation{display:none}.messages-layout.conversation-open{grid-template-columns:1fr}.messages-layout.conversation-open .messages-panel-conversation{flex-direction:column;min-height:50vh;display:flex}.messages-layout.conversation-open .messages-panel-conversation .message-stack{flex:1;min-height:200px}}@media (width<=900px){.topbar,.portal-actions,.portal-notification-panel-head,.list-item,.inline-comment-form,.section-header{flex-direction:column;align-items:stretch}.topbar{border-radius:26px;padding:1rem 1.1rem}.portal-bar{position:static}.portal-nav{flex-wrap:nowrap;justify-content:flex-start;padding-bottom:.2rem;overflow-x:auto}.portal-nav-primary{flex-wrap:wrap;justify-content:center;width:100%}.portal-notification-panel{width:min(100%,24rem);left:50%;right:auto;transform:translate(-50%)}.portal-nav a{white-space:nowrap}.hero-card{background-position:top;align-items:flex-end;min-height:680px;padding:1.5rem 1.1rem}.hero-stack{width:100%;margin-top:1rem;position:static}.hero-copy{max-width:100%}.hero-copy h2{max-width:9ch}.panel-card,.metric-card,.feature-card,.stat-card,.state-card{border-radius:24px;padding:1.1rem}.message-stack{min-height:220px;max-height:320px}.profile-image-manager,.form-grid{grid-template-columns:1fr}}@media (width<=680px){.landing-frame,.content-shell,.portal-page,.fullscreen-shell{padding:.85rem}.portal-page{padding-bottom:1rem}.brand-lockup h1,.brand-lockup h2{font-size:1.55rem}.hero-copy h2{max-width:8ch;font-size:2.25rem}.hero-copy p:last-of-type{font-size:.95rem}.hero-card{background-position:top;border-radius:28px;min-height:560px}.stats-grid{grid-template-columns:1fr}.section-intro h1{font-size:1.8rem}.cta-button,.ghost-button,.ghost-link{text-align:center;justify-content:center;width:100%}.upload-card{min-height:160px}.asset-grid{grid-template-columns:1fr}.asset-modal{padding:.9rem}.asset-modal-image,.asset-modal-frame{min-height:40vh}input,textarea,select{padding:.85rem .95rem}}.family-tree-modal-backdrop{z-index:50;background:#261c1599;justify-content:center;align-items:stretch;padding:1rem;display:flex;position:fixed;inset:0}.family-tree-modal{border:1px solid var(--border);background:var(--paper-strong);width:100%;max-width:calc(100vw - 2rem);height:calc(100vh - 2rem);max-height:calc(100vh - 2rem);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;display:flex;overflow:hidden}.family-tree-modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.family-tree-modal-header h2{margin:0;font-size:1.25rem}.family-tree-modal-chart{flex:1;min-height:0;position:relative}.family-tree-modal-chart .family-tree-react-flow{width:100%;height:100%}.family-tree-graph-wrap{width:100%;margin-top:1.5rem}.family-tree-graph{background:#f5f5f5;border:1px solid #e0e0e0;border-radius:12px;min-height:400px;padding:.75rem;overflow:hidden}.family-tree-react-flow{--rf-background:#f5f5f5}.family-tree-react-flow .react-flow__node{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.family-tree-react-flow .react-flow__edge-path,.family-tree-flow-edge-path{stroke:#c8c8c8;stroke-width:1.5px}.family-tree-react-flow .react-flow__controls{border:1px solid #e8e8e8;box-shadow:0 1px 3px #0000000f}.family-tree-react-flow .react-flow__minimap{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.family-tree-edge-label{color:#666;white-space:nowrap;box-shadow:none;background:#f5f5f5eb;border:none;border-radius:4px;padding:1px 6px;font-size:10px;font-style:italic;font-weight:500}.family-tree-flow-node{box-shadow:none;background:0 0;border:none;padding:0}.family-tree-flow-node-body{flex-direction:column;align-items:center;gap:.45rem;min-width:72px;padding:.25rem .35rem;display:flex}.family-tree-flow-node-avatar{box-sizing:border-box;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.family-tree-flow-node-avatar-photo{border:2px solid #fff;box-shadow:0 0 0 1px #d0d0d0}.family-tree-flow-node-avatar-placeholder{background:#fafafa;border:2px dashed #b8b8b8}.family-tree-flow-node-center .family-tree-flow-node-avatar-photo{box-shadow:0 0 0 2px #6b9bd1}.family-tree-flow-node-center .family-tree-flow-node-avatar-placeholder{background:#f0f6fc;border-style:dashed;border-color:#6b9bd1}.family-tree-flow-node-avatar img{object-fit:cover;width:100%;height:100%}.family-tree-flow-node-initials{color:#555;font-family:system-ui,-apple-system,sans-serif;font-size:15px;font-weight:600}.family-tree-flow-node-name{color:#222;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:96px;font-size:11px;font-weight:500;line-height:1.25;overflow:hidden}.family-tree-flow-node-center .family-tree-flow-node-avatar{width:52px;height:52px}.family-tree-flow-node-center .family-tree-flow-node-initials{color:#3d5a80;font-size:17px}.family-tree-flow-node-center .family-tree-flow-node-name{color:#1a1a1a;font-size:12px;font-weight:600}.family-tree-vine{stroke:var(--muted);stroke-width:2px;fill:none;opacity:.85}.family-tree-node-circle{fill:var(--paper);stroke:var(--accent);stroke-width:2px}.family-tree-node-center .family-tree-node-circle{fill:var(--mint);stroke:var(--accent-strong);stroke-width:2.5px}.family-tree-node-label{font-family:var(--font-fraunces,"Fraunces", Georgia, serif);fill:var(--ink);pointer-events:none;font-size:12px;font-weight:600}.family-tree-node-center .family-tree-node-label{font-size:14px}.relationship-combobox{position:relative}.relationship-combobox input{width:100%}.relationship-combobox-list{z-index:10;border:1px solid var(--border);background:var(--paper-strong);max-height:220px;box-shadow:var(--shadow);border-radius:12px;margin:.25rem 0 0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.relationship-combobox-option{cursor:pointer;padding:.6rem 1rem}.relationship-combobox-option:hover,.relationship-combobox-option.highlighted{background:var(--mint)}.relationship-add-empty-hint{margin-top:.35rem}.hk-landing-page{background:radial-gradient(circle at 12% 12%,#fad7b880,#0000 34%),radial-gradient(circle at 88% 28%,#e8e2d485,#0000 37%),linear-gradient(#f7f2ed 0%,#f2ede7 100%)}.hk-landing-frame{max-width:1500px;margin:0 auto;padding:1.1rem}.hk-landing-hero-only{border:1px solid var(--border);box-shadow:var(--shadow);background:#fffcf7c7;border-radius:26px;margin-top:1rem;padding:1rem}.hk-landing-topbar{z-index:30;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f7f1ebd6;border-radius:22px;grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.8rem 1.2rem;display:grid;position:sticky;top:.9rem}.hk-brand-mark{color:var(--hk-accent);margin:0;font-size:clamp(1.35rem,1.9vw,1.9rem);font-style:italic}.hk-top-links{align-items:center;gap:1.15rem;display:flex}.hk-top-links a{color:#2c2119d6;border-bottom:2px solid #0000;padding-bottom:.15rem;font-size:.95rem}.hk-top-links a:hover{border-color:var(--hk-accent)}.hk-top-icons{color:#382c23b3;align-items:center;gap:.55rem;display:flex}.hk-avatar-dot{color:var(--hk-accent)}.hk-landing-grid{border:1px solid var(--border);box-shadow:var(--shadow);background:#fffcf7c7;border-radius:26px;grid-template-columns:minmax(210px,250px) 1fr;margin-top:1rem;display:grid;overflow:hidden}.hk-left-rail{border-right:1px solid var(--border);background:#ede8dfb8;align-content:start;gap:1.2rem;padding:1.45rem 1rem;display:grid}.hk-left-head{gap:.15rem;display:grid}.hk-reunion-year{color:var(--hk-accent);font-family:Noto Serif,Georgia,serif;font-size:1.15rem}.hk-family-name{text-transform:uppercase;letter-spacing:.1em;color:#392e25d1;font-size:.72rem}.hk-side-nav{gap:.45rem;display:grid}.hk-side-nav a{color:#2f251cdb;border-radius:11px;padding:.6rem .7rem;font-size:.93rem}.hk-side-nav a.is-active,.hk-side-nav a:hover{background:#ffffffb8}.hk-side-cta{color:#fff;background:linear-gradient(120deg,#b85e20 0%,#e39f65 100%);border:0;border-radius:999px;padding:.72rem 1rem;font-weight:700;box-shadow:0 8px 18px #a45f2b38}.hk-side-foot{color:#3f342bbd;gap:.5rem;margin-top:auto;font-size:.82rem;display:grid}.hk-main-panel{gap:1rem;padding:1rem;display:grid}.hk-hero{background:linear-gradient(96deg,#f7f2ecf0 0%,#f7f2ecd1 46%,#f7f2ec99 100%),url(/family_hero.png) 50%/cover no-repeat;border:1px solid #ffffff75;border-radius:22px;align-items:center;min-height:470px;display:flex;overflow:hidden}.hk-hero-overlay{max-width:760px;padding:2.5rem;animation:.42s ease-out hk-fade-up}.hk-hero h2{color:#9c4d17;font-size:clamp(2.4rem,5.2vw,5rem);line-height:.94}.hk-hero p{color:#33281fd6;max-width:33ch;margin-top:1rem;font-size:clamp(1rem,1.9vw,1.6rem);line-height:1.32}.hk-hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.4rem;display:flex}.hk-primary-btn,.hk-secondary-btn,.hk-inline-btn{border:1px solid #0000;border-radius:999px;padding:.78rem 1.18rem;font-size:.95rem;font-weight:700}.hk-primary-btn,.hk-inline-btn{color:#fff;background:linear-gradient(120deg,#a45116 0%,#e39f65 100%);border:0}.hk-secondary-btn{color:#413327e0;background:#e8e2d6eb;border-color:#7e68523d}.hk-feature-grid{grid-template-columns:2fr 1fr;gap:.9rem;display:grid}.hk-feature-card{border:1px solid var(--border);background:#fcf9f2db;border-radius:18px;padding:1.15rem;box-shadow:0 8px 22px #50392314}.hk-feature-rsvp{min-height:210px}.hk-feature-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:#7c9f64;font-size:.72rem}.hk-feature-card h3{margin-top:.4rem;font-size:clamp(1.3rem,2.2vw,2rem)}.hk-feature-card p{color:#3a2d22c2;margin-top:.7rem}.hk-feature-gallery a{color:var(--hk-accent);margin-top:1rem;font-weight:600;display:inline-block}.hk-feature-small{min-height:120px}.hk-highlight{border:1px solid var(--border);background:#eee9dfa3;border-radius:18px;padding:1.3rem}.hk-highlight h3{text-align:center;color:#9c4d17;font-size:clamp(1.45rem,2.8vw,2.3rem)}.hk-highlight-card{background:#ffffffa8;border:1px solid #7e685233;border-radius:14px;grid-template-columns:180px 1fr;align-items:center;gap:1rem;margin-top:1rem;padding:.9rem;display:grid}.hk-highlight-card img{object-fit:cover;border-radius:10px;width:100%;height:130px}.hk-highlight-meta{text-transform:uppercase;letter-spacing:.1em;color:#42352a9e;font-size:.72rem}.hk-highlight-card h4{margin-top:.45rem;font-size:clamp(1.15rem,2vw,1.75rem)}.hk-highlight-card p:last-child{color:#392c22c2;margin-top:.45rem}@keyframes hk-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=1120px){.hk-landing-grid{grid-template-columns:1fr}.hk-left-rail{border-right:0;border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:1rem}.hk-side-nav{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}.hk-side-foot{display:none}}@media (width<=860px){.hk-landing-topbar{grid-template-columns:1fr;justify-items:start}.hk-feature-grid,.hk-highlight-card{grid-template-columns:1fr}}@media (width<=640px){.hk-main-panel{padding:.72rem}.hk-side-nav{grid-template-columns:1fr 1fr}.hk-hero{align-items:end;min-height:420px}.hk-hero-overlay{padding:1.2rem}.hk-hero p{font-size:1rem}.hk-hero-actions{flex-direction:column}.hk-primary-btn,.hk-secondary-btn,.hk-inline-btn{text-align:center;width:100%}}.hk-dashboard-page{gap:1rem}.hk-dashboard-intro{justify-content:space-between;align-items:center;gap:1rem;display:flex}.hk-dashboard-intro h1{font-size:clamp(1.8rem,2.8vw,2.8rem)}.hk-dashboard-intro p{color:var(--muted);margin-top:.25rem}.hk-dashboard-search{border:1px solid var(--border);color:#47372bb8;background:#e9e2d6b8;border-radius:999px;padding:.7rem 1rem}.hk-dashboard-hero{border:1px solid var(--border);color:#fff;background:linear-gradient(#281c151a 0%,#281c15b8 100%),url(/family_hero.png) 50%/cover no-repeat;border-radius:22px;min-height:210px;padding:1.4rem}.hk-dashboard-hero h2{margin-top:.6rem;font-size:clamp(2rem,3.5vw,3rem)}.hk-dashboard-hero p{color:#ffffffe0;max-width:45ch;margin-top:.35rem}.hk-dashboard-main-grid{grid-template-columns:2fr minmax(260px,1fr);gap:.95rem;display:grid}.hk-section-headline{justify-content:space-between;align-items:center;margin:.25rem 0 .55rem;display:flex}.hk-section-headline h3{font-size:1.8rem}.hk-section-headline a{color:var(--hk-accent);font-weight:700}.hk-upcoming-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.hk-upcoming-card{border:1px solid var(--border);background:#fffaf4e0;border-radius:14px;padding:1rem}.hk-card-tag{text-transform:uppercase;letter-spacing:.09em;color:#67884e;font-size:.68rem}.hk-upcoming-card h4{margin-top:.5rem;font-size:1.6rem}.hk-upcoming-card p{color:var(--muted);margin-top:.4rem}.hk-upcoming-card a{color:var(--hk-accent);background:#ffffffb8;border-radius:999px;min-height:44px;margin-top:.7rem;padding:.65rem .9rem;font-weight:700;display:inline-block}.hk-activity-list{gap:.65rem;display:grid}.hk-activity-item{border:1px solid var(--border);background:#ffffffb3;border-radius:12px;justify-content:space-between;gap:1rem;padding:.85rem .95rem;display:flex}.hk-activity-item p{color:var(--muted);margin-top:.25rem}.hk-dashboard-side{gap:.8rem;display:grid}.hk-checklist-card,.hk-committee-card{border:1px solid var(--border);background:#efe8dc9e;border-radius:14px;padding:1rem}.hk-checklist-card ul{gap:.45rem;margin:.75rem 0 0;padding-left:1.1rem;display:grid}.hk-avatars-row{flex-wrap:wrap;gap:.45rem;margin-top:.8rem;display:flex}.hk-avatar-chip{color:#fff;background:linear-gradient(120deg,#996037 0%,#e0b384 100%);border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;font-weight:700;display:inline-flex}.hk-dashboard-footer-note{border:1px solid var(--border);background:#ffffffb3;border-radius:12px;padding:.8rem 1rem}.hk-dashboard-stats{margin-top:.35rem}.hk-events-hero,.hk-hotels-hero{border:1px solid var(--border);background:#fffcf5b8;border-radius:18px;padding:1.2rem}.hk-events-hero h1,.hk-hotels-hero h1{margin-top:.35rem;font-size:clamp(2rem,3vw,2.9rem)}.hk-events-hero p:last-child,.hk-hotels-hero p:last-child{color:var(--muted);max-width:70ch;margin-top:.5rem}.hk-events-layout,.hk-hotels-layout{grid-template-columns:2fr 1fr;gap:.9rem;display:grid}.hk-events-stream,.hk-hotels-list{min-height:420px}.hk-events-editor,.hk-hotels-editor{height:fit-content;position:sticky;top:6.8rem}.hk-gallery-intro h1{font-size:clamp(2rem,3.2vw,3.1rem)}.hk-gallery-intro p{color:var(--muted);max-width:65ch;margin-top:.55rem}.hk-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.hk-gallery-tile{border:1px solid var(--border);background:#f4ede3cc;border-radius:12px;min-height:180px;position:relative;overflow:hidden}.hk-gallery-tile img{object-fit:cover;width:100%;height:180px;display:block}.hk-gallery-tile span{color:#372a20d1;white-space:nowrap;text-overflow:ellipsis;padding:.5rem .65rem;font-size:.82rem;display:block;overflow:hidden}.hk-files-row-card{margin-top:.2rem}.hk-files-toolbar{margin:.4rem 0 .8rem}.hk-upload-inline{border-radius:14px;min-height:88px}.hk-file-row{align-items:center}@media (width<=1120px){.hk-dashboard-main-grid,.hk-events-layout,.hk-hotels-layout{grid-template-columns:1fr}.hk-events-editor,.hk-hotels-editor{position:static}}@media (width<=860px){.hk-upcoming-grid,.hk-gallery-grid{grid-template-columns:1fr}.hk-dashboard-intro{flex-direction:column;align-items:flex-start}.hk-dashboard-search{width:100%}}.hk-unified-page{border:1px solid var(--border);background:radial-gradient(circle at 100% 0,#ece8dd66,#0000 42%),#fffcf7ad;border-radius:22px;padding:1.2rem;position:relative;overflow:hidden;box-shadow:0 10px 28px #5f442f14}.hk-unified-page h3{color:#5f3317}.hk-unified-page input,.hk-unified-page textarea,.hk-unified-page select{background:#ffffffdb;border-color:#8c5e3c3d}.hk-unified-page .form-grid,.hk-unified-page .list-stack{gap:.8rem}.hk-unified-page .section-intro{border-bottom:1px solid var(--border);padding-bottom:.9rem}.hk-unified-page .section-intro h1{color:var(--hk-accent);font-size:clamp(1.8rem,3vw,2.7rem)}.hk-unified-page .section-intro p{color:var(--muted);max-width:68ch;margin-top:.55rem}.hk-unified-page .panel-card{background:#fffaf4e0;border-radius:18px;box-shadow:0 8px 20px #573f2b14}.hk-unified-page .section-header h2{color:#6f3f1f}.hk-unified-page .list-item,.hk-unified-page .thread-card,.hk-unified-page .timeline-card{border:1px solid var(--border);background:#ffffffb8;border-radius:12px}.hk-unified-page .upload-card{background:#faf5eceb;border-radius:14px}.hk-unified-page .cta-button{color:#fff;background:linear-gradient(120deg,#a45116 0%,#e39f65 100%)}.hk-unified-page .ghost-button,.hk-unified-page .ghost-link{background:#ece8dd8c}.hk-unified-page .cta-button,.hk-unified-page .ghost-button,.hk-unified-page .ghost-link,.hk-primary-btn,.hk-secondary-btn,.hk-inline-btn{transition:transform .16s,box-shadow .16s,background-color .16s}.hk-unified-page .cta-button:hover,.hk-unified-page .ghost-button:hover,.hk-unified-page .ghost-link:hover,.hk-primary-btn:hover,.hk-secondary-btn:hover,.hk-inline-btn:hover{transform:translateY(-1px)}.hk-unified-page .cta-button:focus-visible,.hk-unified-page .ghost-button:focus-visible,.hk-unified-page .ghost-link:focus-visible,.hk-primary-btn:focus-visible,.hk-secondary-btn:focus-visible,.hk-inline-btn:focus-visible,.hk-top-links a:focus-visible,.hk-side-nav a:focus-visible{outline-offset:2px;outline:2px solid #9c501980}.hk-unified-page .pill{color:#466432;background:#ddecd2e6}.hk-bulletin-page .content-grid.two-up{gap:1rem}.hk-messages-page .messages-layout{border:1px solid var(--border);background:#fcf8f0ad;border-radius:16px;padding:.6rem}.hk-familytree-page .family-tree-graph,.hk-familytree-page .family-tree-modal{background:#faf7f0f0}.hk-help-page .content-grid.two-up .panel-card{-webkit-backdrop-filter:none;backdrop-filter:none}.hk-profile-page .content-grid.two-up,.hk-registration-page .content-grid.two-up,.hk-flights-page .content-grid.two-up{align-items:start}.hk-bulletin-page .section-intro,.hk-messages-page .section-intro{margin-bottom:.2rem}.hk-messages-page .messages-panel-conversation{background:#f7f2e9d6}.hk-organizer-page .checklist a,.hk-admin-page .checklist a,.hk-audit-page .ghost-link{color:var(--hk-accent);font-weight:700}.hk-audit-page .list-stack,.hk-organizer-page .list-stack,.hk-admin-page .list-stack{gap:.75rem}.hk-state-shell{background:radial-gradient(circle at 20% 20%,#fadbbe80,#0000 34%),linear-gradient(#f7f2ed 0%,#eee7dc 100%)}.hk-state-shell .state-card,.hk-notfound-shell .not-found-card{border:1px solid var(--border);background:#fffcf7e6;border-radius:24px;box-shadow:0 16px 34px #5a402b1c}.hk-notfound-shell .not-found-card h1{color:var(--hk-accent)}.hk-state-shell .state-card p,.hk-notfound-shell .not-found-description{color:var(--muted)}@media (width<=860px){.hk-unified-page{border-radius:18px;padding:.9rem}}@media (prefers-reduced-motion:reduce){.hk-primary-btn,.hk-secondary-btn,.hk-inline-btn,.hk-unified-page .cta-button,.hk-unified-page .ghost-button,.hk-unified-page .ghost-link,.hk-hero-overlay{transition:none;animation:none;transform:none}}
