.profile-identity{margin-bottom:18px}.profile-identity-copy{flex:auto;min-width:0}.profile-auth-error{color:var(--warning)!important;margin-top:5px!important}.profile-account-action,.auth-dialog-submit,.locked-section-state button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:9999px;min-height:44px;font-size:14px;font-weight:650}.profile-account-action{flex:none;justify-content:center;align-items:center;gap:7px;padding:0 16px;display:inline-flex}.profile-account-action.is-secondary{border:1px solid var(--hairline);color:var(--ink);background:#fff}.profile-account-action:disabled,.auth-dialog button:disabled{cursor:wait;opacity:.5}.profile-avatar{background:var(--parchment);width:64px;height:64px;color:var(--muted);border-radius:50%;flex:none;place-items:center;display:grid}.profile-menu{border-radius:16px;overflow:hidden}.profile-menu-item{color:inherit;text-decoration:none}.profile-inline-action{background:var(--parchment);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:12px;display:inline-flex}.profile-deployment-version{border-top:1px solid var(--hairline);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;margin:14px 4px 0;padding:14px 2px 2px;font-size:11px;line-height:1.45;display:flex}.profile-deployment-version code{color:var(--muted);font-variant-numeric:tabular-nums;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px}.profile-favorites,.profile-content{box-shadow:inset 0 -1px 0 var(--liquid-edge-dark);background:#ffffffc7;border:1px solid #ffffffe6;border-radius:16px;margin-bottom:18px;padding:22px 24px}.profile-content-summary{background:var(--hairline);border-radius:11px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:18px;display:grid;overflow:hidden}.profile-content-summary a{background:var(--canvas);min-height:68px;color:var(--ink);grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:grid}.profile-content-summary strong{color:var(--accent);font-size:21px}.profile-content-summary span{color:var(--muted);font-size:13px}.profile-favorites-heading{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.profile-favorites-heading p{color:var(--accent);letter-spacing:.08em;margin:0 0 4px;font-size:11px;font-weight:750}.profile-favorites-heading h2{margin:0;font-size:18px}.profile-favorites-heading>span{color:var(--muted);font-size:12px}.profile-favorites-empty{background:var(--canvas);color:var(--accent);border-radius:16px;grid-template-columns:auto 1fr;align-items:center;gap:13px;margin-top:18px;padding:16px;display:grid}.profile-favorites-empty strong,.profile-favorite-row strong{color:var(--ink);font-size:14px;display:block}.profile-favorites-empty p,.profile-favorite-row p{color:var(--muted);margin:3px 0 0;font-size:12px}.profile-favorite-tabs{border-bottom:1px solid var(--hairline);gap:4px;margin-top:18px;padding-bottom:10px;display:flex}.profile-favorite-tabs button{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 12px}.profile-favorite-tabs button.is-active{background:color-mix(in srgb, var(--accent) 9%, transparent);color:var(--accent);font-weight:700}.profile-favorite-list{display:grid}.profile-favorite-row{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,1fr) 44px 44px;align-items:center;display:grid}.profile-favorite-row:not(.is-project){grid-template-columns:minmax(0,1fr) 44px}.profile-favorite-row:last-child{border-bottom:0}.profile-favorite-row>a,.profile-favorite-unavailable{min-height:68px;color:var(--accent);grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;text-decoration:none;display:grid}.profile-favorite-row>a:hover strong{color:var(--accent)}.profile-favorite-row>button{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.profile-favorite-row>button:hover{background:var(--canvas);color:var(--ink)}.profile-subscription-switch{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.profile-subscription-switch:hover,.profile-subscription-switch.is-enabled{background:color-mix(in srgb, var(--accent) 9%, transparent);color:var(--accent)}.profile-subscription-switch:disabled{cursor:wait;opacity:.5}.profile-subscription-notice{border:1px solid color-mix(in srgb, var(--accent) 18%, var(--hairline));background:color-mix(in srgb, var(--accent) 5%, var(--canvas));color:var(--accent);border-radius:11px;grid-template-columns:20px minmax(0,1fr) 36px;align-items:center;gap:8px;margin-top:14px;padding:10px 8px 10px 12px;font-size:12px;line-height:1.45;display:grid}.profile-subscription-notice button{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.profile-favorite-row.is-unavailable{opacity:.72}.profile-favorite-state{color:var(--muted);margin:18px 0 2px;font-size:13px}.profile-favorite-state.is-error{color:var(--warning)}.favorite-button{border:1px solid var(--hairline);min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 15px;font-size:13px;font-weight:650;display:inline-flex}.favorite-button.is-compact{background:var(--pearl);width:44px;padding:0}.favorite-button.is-active{background:color-mix(in srgb, var(--accent) 9%, transparent)}.favorite-button:disabled{cursor:wait;opacity:.55}.profile-menu-item{border-width:0 0 1px;grid-template-columns:28px 1fr auto;align-items:center;gap:14px;min-height:78px;padding:14px 18px;display:grid}.profile-menu-item:last-child{border-bottom:0}.profile-menu-item>svg:first-child{color:var(--accent)}.profile-menu-item.is-disabled{cursor:default}.notification-hub{box-shadow:inset 0 -1px 0 var(--liquid-edge-dark);border:1px solid #ffffffe6;border-radius:16px;margin-bottom:18px;overflow:hidden}.notification-page{width:min(680px,100% - 36px);margin:0 auto;padding:20px 0 80px}.notification-page-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-bottom:18px;display:grid}.notification-page-header>a,.notification-page-header>button{background:var(--parchment);width:fit-content;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-size:12px;text-decoration:none;display:inline-flex}.notification-page-header>div{text-align:center}.notification-page-header p{color:var(--accent);letter-spacing:.09em;margin:0 0 3px;font-size:10px;font-weight:750}.notification-page-header h1{margin:0;font-size:22px}.notification-setting-link{border-bottom:1px solid var(--hairline);min-height:70px;color:inherit;grid-template-columns:22px minmax(0,1fr) 20px;align-items:center;gap:10px;padding:10px 13px;text-decoration:none;display:grid}.notification-setting-link>svg:first-child{color:var(--accent)}.notification-setting-link strong,.notification-setting-link small{display:block}.notification-setting-link strong{font-size:13px}.notification-setting-link small{color:var(--muted);margin-top:3px;font-size:11px;line-height:1.4}.notification-setting-link>svg:last-child{color:var(--muted)}.notification-feed{margin-top:18px}.notification-feed-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.notification-filters{gap:4px;min-width:0;display:flex}.notification-filters button{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 14px}.notification-filters button.is-active{background:color-mix(in srgb, var(--accent) 9%, transparent);color:var(--accent);font-weight:700}.notification-mark-all{background:var(--parchment);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:999px;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-size:12px;display:inline-flex}.notification-mark-all:disabled{cursor:default;opacity:.45}.profile-notification-guest{min-height:55vh;color:var(--muted);text-align:center;place-content:center;justify-items:center;gap:10px;display:grid}.profile-notification-guest svg{color:var(--accent)}.profile-notification-guest h1{color:var(--ink);margin:0;font-size:24px}.profile-notification-guest p{margin:0;font-size:13px}.profile-notification-guest button{background:var(--accent);color:#fff;min-height:44px;font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:7px;padding:0 16px;font-size:13px;display:inline-flex}.notification-hub{border-bottom:1px solid var(--hairline);background:#ffffffc7}.notification-entry{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.notification-entry:hover{background:color-mix(in srgb, var(--accent) 4%, transparent)}.notification-unread-badge{background:var(--accent);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:26px;height:26px;padding:0 7px;font-size:11px;font-weight:750;display:grid}.notification-panel{border-top:1px solid var(--hairline);padding:0 18px 18px}.notification-panel-header{justify-content:space-between;align-items:flex-end;gap:12px;padding:18px 0 14px;display:flex}.notification-panel-header p{color:var(--accent);letter-spacing:.09em;margin:0 0 3px;font-size:10px;font-weight:750}.notification-panel-header h2{margin:0;font-size:18px}.notification-panel-header>button,.notification-load-more,.notification-empty button{background:var(--parchment);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:12px;display:inline-flex}.notification-panel-header>button:disabled,.notification-load-more:disabled{cursor:default;opacity:.45}.notification-settings{border:1px solid var(--hairline);background:var(--canvas);border-radius:14px;overflow:hidden}.notification-setting-row{border-bottom:1px solid var(--hairline);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:70px;padding:10px 13px;display:grid}.notification-setting-row>svg{color:var(--accent)}.notification-setting-row strong{font-size:13px;display:block}.notification-setting-row p{color:var(--muted);margin:3px 0 0;font-size:11px;line-height:1.4}.notification-switch{cursor:pointer;background:#c8ccd2;border:0;border-radius:999px;width:46px;height:28px;padding:0;transition:background .16s;position:relative}.notification-switch span{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000002e}.notification-switch.is-enabled{background:var(--accent)}.notification-switch.is-enabled span{transform:translate(18px)}.notification-switch:disabled{cursor:default;opacity:.48}.notification-status-message{color:var(--muted);margin:0;padding:10px 13px;font-size:11px;line-height:1.45}.notification-list{margin-top:14px;display:grid}.notification-row{border:0;border-bottom:1px solid var(--hairline);width:100%;min-height:82px;color:inherit;text-align:left;cursor:pointer;background:0 0;grid-template-columns:36px minmax(0,1fr) 20px;align-items:start;gap:10px;padding:13px 0;display:grid}.notification-row>span:nth-child(2){min-width:0}.notification-row strong,.notification-row small,.notification-row time{display:block}.notification-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.45;overflow:hidden}.notification-row small{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:11px;line-height:1.45;display:-webkit-box;overflow:hidden}.notification-row time{color:var(--muted);margin-top:5px;font-size:10px}.notification-read-state{color:var(--muted);padding-top:2px;font-size:10px}.notification-row.is-unread .notification-read-state{color:var(--accent);font-weight:750}.notification-row.is-unread strong{color:var(--ink);font-weight:750}.notification-row.is-read{opacity:.78}.notification-row.is-unavailable{cursor:default;opacity:.55}.notification-empty{min-height:84px;color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:8px;margin:0;font-size:12px;line-height:1.5;display:flex}.notification-empty.is-error{color:var(--warning)}.notification-load-more{justify-self:center;margin-top:12px}.notification-spinner{animation:.9s linear infinite route-state-spin}@media (prefers-reduced-motion:reduce){.notification-switch,.notification-switch span{transition:none}.notification-spinner{animation:none}}.profile-coming-soon{color:var(--muted);white-space:nowrap;font-size:12px}.auth-dialog-backdrop{z-index:10000;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(10px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.auth-dialog{background:var(--dialog-surface);border:0;border-radius:18px;width:min(100%,420px);padding:30px;position:relative;box-shadow:0 12px 32px #00000029}.auth-dialog-close{width:44px;height:44px;color:var(--ink);cursor:pointer;background:#f5f5f7;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:14px;right:14px}.auth-dialog-eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 7px;font-size:11px;font-weight:750}.auth-dialog h2{letter-spacing:-.035em;margin:0;font-size:27px}.auth-dialog-description{color:var(--muted);margin:9px 36px 24px 0;font-size:14px;line-height:1.55}.auth-dialog form{gap:10px;display:grid}.auth-dialog label{color:var(--ink);margin-top:4px;font-size:13px;font-weight:650}.auth-phone-field,.auth-code-field{background:#fff;border:1px solid #d2d2d7;border-radius:8px;align-items:center;min-height:48px;display:flex;overflow:hidden}.auth-phone-field:focus-within,.auth-code-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent), transparent 86%)}.auth-phone-field>span{color:var(--muted);padding-left:14px;font-size:14px}.auth-dialog input{min-width:0;height:46px;color:var(--ink);background:0 0;border:0;outline:0;flex:auto;padding:0 14px;font-size:16px}.auth-dialog input:focus,.auth-dialog input:focus-visible{box-shadow:none;border-color:#0000;outline:none}.auth-code-field button{border:0;border-left:1px solid var(--hairline);min-width:94px;color:var(--accent);cursor:pointer;background:#fff;align-self:stretch;padding:0 12px;font-size:13px;font-weight:650}.auth-dialog-message{color:var(--warning);margin:2px 0 0;font-size:13px;line-height:1.45}.auth-dialog-submit{width:100%;margin-top:8px}.auth-dialog-note{color:var(--muted);margin:16px 0 0;font-size:12px;line-height:1.5}.profile-editor-backdrop{z-index:10020;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(10px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.profile-editor{background:var(--dialog-surface);border:0;border-radius:18px;width:min(100%,440px);padding:30px;position:relative;box-shadow:0 12px 32px #00000029}.profile-editor-close{background:var(--parchment);width:44px;height:44px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:14px;right:14px}.profile-editor-eyebrow{color:var(--accent);letter-spacing:.1em;margin:0 0 7px;font-size:11px;font-weight:750}.profile-editor h2{letter-spacing:-.035em;margin:0;font-size:27px}.profile-editor-description{color:var(--muted);margin:9px 40px 22px 0;font-size:13px;line-height:1.6}.profile-editor form{gap:10px;display:grid}.profile-editor form>label{margin-top:6px;font-size:13px;font-weight:650}.profile-avatar-editor{background:var(--parchment);border-radius:16px;align-items:center;gap:17px;padding:16px;display:flex}.profile-avatar-editor>div{flex-wrap:wrap;gap:6px;display:flex}.profile-avatar-upload,.profile-avatar-editor button{border:1px solid var(--hairline);background:var(--canvas);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:12px;display:inline-flex}.profile-avatar-upload input{opacity:0;width:1px;height:1px;position:absolute}.profile-name-field{border:1px solid var(--hairline-strong);background:var(--canvas);border-radius:8px;min-height:48px;display:flex;overflow:hidden}.profile-name-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent), transparent 86%)}.profile-name-field input{min-width:0;font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0 13px}.profile-name-field button{border:0;border-left:1px solid var(--hairline);min-width:70px;color:var(--accent);cursor:pointer;background:0 0;font-weight:650}.profile-editor-message{min-height:20px;color:var(--muted);margin:0;font-size:12px;line-height:1.55}.profile-editor-message.is-available{color:var(--accent)}.profile-editor-message.is-error,.profile-editor-message.is-unavailable{color:var(--warning)}.profile-editor-save{background:var(--accent);color:#fff;min-height:46px;font:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:7px;margin-top:6px;font-weight:700;display:inline-flex}.profile-editor-save:disabled{cursor:wait;opacity:.5}
*{box-sizing:border-box}html,body{background:var(--parchment);min-height:100dvh;color:var(--ink);margin:0;overflow:hidden}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin-top:0}h1{letter-spacing:0;margin-bottom:0;font-family:SF Pro Display,PingFang SC,system-ui,-apple-system,sans-serif;font-size:28px;font-weight:600;line-height:1.12}h2{letter-spacing:0;margin-bottom:0;font-size:21px;font-weight:600;line-height:1.25}h3{color:var(--muted-strong);margin-bottom:12px;font-size:14px;font-weight:600}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.user-avatar{width:var(--avatar-size,40px);height:var(--avatar-size,40px);background:var(--parchment);color:var(--muted);vertical-align:middle;border-radius:50%;flex:none;place-items:center;display:inline-grid;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%}
.map-app{isolation:isolate;width:100vw;min-height:100dvh;position:relative;overflow:hidden}.map-root{z-index:0;position:absolute;inset:0}.map-root>.map-sdk-container{background:var(--parchment);width:100%;height:100%;position:absolute;inset:0}.land-canvas{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map-loading{z-index:2;border:1px solid var(--hairline);background:var(--glass);min-width:220px;max-width:min(360px,100vw - 48px);-webkit-backdrop-filter:var(--blur);box-shadow:none;color:var(--muted);text-align:center;pointer-events:none;border-radius:18px;padding:13px 16px;font-size:13px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-loading-ready{display:none}.map-surface{background:radial-gradient(circle at 18% 16%,#ffffffe0,#0000 28%),linear-gradient(135deg,#dfede8f5,#e2e9f0f5 42%,#d2e4e1f0);width:100%;height:100%;position:relative;overflow:hidden}.map-grid{opacity:.55;background-image:linear-gradient(#3b4f601c 1px,#0000 1px),linear-gradient(90deg,#3b4f601c 1px,#0000 1px);background-size:58px 58px;position:absolute;inset:-1px}.water-band{background:#5db4bc3b;height:18%;position:absolute;bottom:7%;left:-8%;right:-8%;transform:rotate(-4deg);box-shadow:inset 0 1px 20px #ffffff57}.road{background:#ffffffc2;border-radius:999px;position:absolute;box-shadow:0 0 0 1px #75869433,0 10px 28px #7586941f}.primary-road{height:18px}.secondary-road{height:10px}.r1{top:38%;left:8%;right:7%;transform:rotate(-9deg)}.r2{top:59%;left:16%;right:18%;transform:rotate(8deg)}.r3{top:18%;left:58%;right:8%;transform:rotate(82deg)}.r4{top:74%;left:25%;right:20%;transform:rotate(-18deg)}.district-label{color:#1f29332e;pointer-events:none;font-size:clamp(38px,6vw,88px);font-weight:800;position:absolute}.label-start{top:48%;left:50%}.label-rongdong{top:26%;left:15%}.label-xiongxian{top:17%;right:10%}.label-rongcheng{bottom:14%;left:30%}.marker-layer{position:absolute;inset:0}.map-marker{z-index:1;border:1px solid var(--hairline);max-width:min(220px,24vw);min-height:34px;-webkit-backdrop-filter:var(--blur);box-shadow:none;color:var(--ink);cursor:pointer;background:#fafafcd1;border-radius:999px;align-items:center;gap:8px;padding:7px 10px 7px 8px;display:inline-flex;position:absolute;transform:translate(-12px,-50%)}.map-marker.is-active{z-index:5;border-color:var(--accent);background:#ffffffe6}.marker-dot{background:var(--marker-color);width:14px;height:14px;box-shadow:0 0 0 4px color-mix(in srgb, var(--marker-color), transparent 72%);border-radius:999px;flex:none}.marker-label{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.glass-brand,.floating-stats,.detail-panel,.glass-dock,.floating-action{border:1px solid var(--liquid-edge);background:var(--liquid-surface);-webkit-backdrop-filter:var(--blur)}.glass-brand,.floating-stats,.detail-panel,.glass-dock{animation:panel-enter var(--motion-medium) var(--ease-standard) both}.glass-brand{z-index:10;top:max(18px, env(safe-area-inset-top));background:var(--liquid-surface-strong);width:fit-content;max-width:calc(100vw - 36px);transition:opacity var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard), visibility 0s linear 0s;border-radius:16px;align-items:center;gap:11px;padding:12px 16px 11px;display:flex;position:absolute;left:18px}.glass-brand-logo{object-fit:contain;flex:none;width:42px;height:42px}.glass-brand-copy{min-width:0}.glass-brand h1{letter-spacing:-.045em;white-space:nowrap;margin:0;font-size:24px;font-weight:760;line-height:1}.eyebrow{color:var(--muted);letter-spacing:0;margin:5px 0 0;font-size:11px;font-weight:600}.demo-badge,.status-pill{white-space:nowrap;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.demo-badge{color:var(--accent);border:1px solid var(--hairline);background:#ffffffb8}.floating-stats{z-index:9;top:max(18px, env(safe-area-inset-top));background:var(--liquid-surface);border-radius:18px;grid-template-columns:repeat(4,minmax(64px,1fr));gap:1px;min-width:330px;display:grid;position:absolute;right:18px;overflow:hidden}.floating-stats div{text-align:center;background:#ffffff5c;gap:2px;padding:13px 10px;display:grid}.floating-stats strong{font-size:21px;font-weight:600;line-height:1}.floating-stats span{color:var(--muted);font-size:12px}.detail-panel{--detail-panel-padding:18px;--detail-panel-surface:#f5f5f7f7;z-index:8;background:var(--detail-panel-surface);border-radius:18px;width:min(430px,100vw - 36px);max-height:min(64vh,610px);padding:18px;position:absolute;top:112px;right:18px;overflow:auto}.detail-sheet-grabber{z-index:12;cursor:grab;touch-action:none;background:0 0;border:0;place-items:center;width:100%;height:36px;margin:0;padding:0;display:grid;position:absolute;top:0;left:0}.detail-sheet-grabber:active{cursor:grabbing}.detail-sheet-grabber span{background:#1d1d1f9e;border-radius:9999px;width:42px;height:5px;margin-top:10px;box-shadow:0 1px #ffffffb8}.detail-panel-scroll{display:contents}.detail-head{justify-content:space-between;align-items:flex-start;gap:16px;width:100%;padding-bottom:14px;display:flex}.detail-head-copy{min-width:0}.detail-head-copy h2{overflow-wrap:anywhere}.detail-head-actions{flex:none;align-items:center;gap:8px;display:flex}.detail-share{border:1px solid var(--hairline);background:var(--pearl);width:44px;height:44px;color:var(--accent);cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.detail-share:hover{background:var(--canvas)}.detail-share:active{transform:scale(.95)}.detail-share:focus-visible{outline:3px solid var(--accent-focus);outline-offset:2px}.project-share-wrap{display:inline-flex;position:relative}.project-share-feedback{width:max-content;max-width:120px;color:var(--muted);font-size:11px;line-height:1.3;position:absolute;top:calc(100% + 5px);right:0}.detail-close{border:1px solid var(--hairline);background:var(--pearl);width:44px;height:44px;color:var(--muted);cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.detail-close:hover{background:var(--canvas);color:var(--ink)}.detail-close:active{transform:scale(.95)}.project-gallery{aspect-ratio:16/9;border:1px solid var(--hairline);background:var(--canvas);width:100%;box-shadow:none;border-radius:18px;margin:0 0 2px;position:relative;overflow:hidden}.project-gallery-stage{width:100%;height:100%;color:inherit;cursor:zoom-in;touch-action:pan-y;background:0 0;border:0;padding:0;display:block;overflow:hidden}.project-gallery-stage:focus-visible{outline:3px solid var(--accent-focus);outline-offset:-3px}.project-gallery-track{width:100%;height:100%;transition:transform .26s var(--ease-standard);will-change:transform;display:flex}.project-gallery-track img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;flex:0 0 100%;width:100%;height:100%;display:block}.project-gallery:after{content:"";pointer-events:none;background:linear-gradient(#0000 58%,#0003);position:absolute;inset:0}.project-gallery figcaption{z-index:1;max-width:calc(100% - 24px);min-height:30px;-webkit-backdrop-filter:var(--blur);box-shadow:none;color:#0f172adb;background:#fafafcbd;border:1px solid #ffffffb8;border-radius:999px;align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:12px;left:12px}.gallery-nav{z-index:2;color:#0f172ac2;cursor:pointer;width:44px;height:44px;transition:color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.gallery-nav:before{content:"";-webkit-backdrop-filter:var(--blur);transition:background var(--motion-fast) var(--ease-standard);background:#d2d2d7a3;border:1px solid #ffffffb8;border-radius:999px;position:absolute;inset:7px}.gallery-nav svg{z-index:1;width:16px;height:16px;position:relative}.gallery-nav:hover:before{background:#f5f5f7db}.gallery-nav:hover{color:var(--ink)}.gallery-nav:active,.floating-action:active,.dock-close:active,.project-row:active,.search-result:active{transform:scale(.95)}.gallery-nav:active{transform:translateY(-50%)scale(.95)}.gallery-prev{left:6px}.gallery-next{right:6px}.gallery-dots{z-index:2;gap:6px;display:inline-flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.gallery-dots span{width:6px;height:6px;transition:width var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);background:#ffffff94;border-radius:999px;box-shadow:0 0 0 1px #0f172a1a}.gallery-dots span.is-active{background:var(--accent);width:18px}.image-lightbox{z-index:50;-webkit-backdrop-filter:blur(10px);animation:lightbox-enter var(--motion-medium) var(--ease-standard) both;background:#000000e0;position:fixed;inset:0}.image-lightbox-dialog{color:#fff;position:absolute;inset:0}.image-lightbox-header{z-index:2;min-height:68px;padding:max(12px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 8px max(18px, env(safe-area-inset-left));justify-content:space-between;align-items:center;gap:16px;display:flex;position:absolute;top:0;left:0;right:0}.image-lightbox-header>div{align-items:baseline;gap:10px;min-width:0;display:flex}.image-lightbox-header strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.image-lightbox-header span{color:#ffffffb3;flex:none;font-size:12px}.image-lightbox-header>.image-lightbox-actions{flex:none;align-items:center;gap:6px;margin-left:auto;display:flex}.image-lightbox-close,.image-lightbox-nav,.image-lightbox-tool,.image-lightbox-scale{-webkit-backdrop-filter:blur(18px);color:#fff;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:#f5f5f729;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.image-lightbox-close{flex:none;width:44px;height:44px}.image-lightbox-tool{width:44px;height:44px}.image-lightbox-scale{font-variant-numeric:tabular-nums;letter-spacing:-.12px;width:58px;height:44px;font-size:12px}.image-lightbox-close:hover,.image-lightbox-nav:hover,.image-lightbox-tool:hover:not(:disabled),.image-lightbox-scale:hover:not(:disabled){background:#f5f5f747}.image-lightbox-close:active,.image-lightbox-nav:active,.image-lightbox-tool:active:not(:disabled),.image-lightbox-scale:active:not(:disabled){transform:scale(.94)}.image-lightbox-tool:disabled,.image-lightbox-scale:disabled{opacity:.42;cursor:default}.image-lightbox-stage{cursor:zoom-in;touch-action:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:68px 76px 36px;overflow:hidden}.image-lightbox-stage.is-zoomed{cursor:grab}.image-lightbox-stage.is-zoomed:active{cursor:grabbing}.image-lightbox-stage img{object-fit:contain;transform-origin:50%;-webkit-user-select:none;user-select:none;will-change:transform;-webkit-user-drag:none;max-width:100%;max-height:100%;display:block}.image-lightbox-nav{z-index:2;width:52px;height:52px;position:absolute;top:50%;transform:translateY(-50%)}.image-lightbox-nav:active{transform:translateY(-50%)scale(.94)}.image-lightbox-prev{left:max(16px, env(safe-area-inset-left))}.image-lightbox-next{right:max(16px, env(safe-area-inset-right))}@keyframes lightbox-enter{0%{opacity:0}to{opacity:1}}.status-pill{color:var(--pill-color);background:color-mix(in srgb, var(--pill-color), white 86%);flex:none}.policy-item,.source-item{border:1px solid var(--hairline);background:var(--canvas);box-shadow:none;border-radius:18px}.detail-section{border-top:1px solid var(--hairline);padding-top:16px}.detail-section+.detail-section{margin-top:16px}.detail-section p{color:var(--ink);font-size:17px;line-height:1.47}
.rich-description-section{display:contents}.detail-identity-sticky{z-index:6;top:calc(var(--detail-panel-padding) * -1);margin-inline:calc(var(--detail-panel-padding) * -1);padding:14px var(--detail-panel-padding) 0;background:var(--detail-panel-surface);-webkit-backdrop-filter:blur(18px);position:sticky}.detail-panel>.rich-description-section:first-child>.detail-identity-sticky{margin-top:calc(var(--detail-panel-padding) * -1)}.detail-identity-sticky .eyebrow{color:var(--accent);margin:0 0 6px;font-size:11px;font-weight:600;line-height:1.3}.description-tabs-sticky{z-index:5;top:calc(var(--detail-identity-height,84px) - var(--detail-panel-padding));margin-inline:calc(var(--detail-panel-padding) * -1);padding-inline:var(--detail-panel-padding);border-bottom:1px solid var(--hairline);background:var(--detail-panel-surface);-webkit-backdrop-filter:blur(18px);position:sticky}.description-tabs{scrollbar-width:none;flex:auto;min-width:0;display:flex;overflow-x:auto}.description-tabs-frame{min-width:0;position:relative}.description-tabs-frame:before,.description-tabs-frame:after{content:"";z-index:2;opacity:0;pointer-events:none;width:22px;transition:opacity var(--motion-fast) var(--ease-standard);position:absolute;top:0;bottom:0}.description-tabs-frame:before{background:linear-gradient(90deg, var(--detail-panel-surface) 20%, transparent);left:0}.description-tabs-frame:after{background:linear-gradient(270deg, var(--detail-panel-surface) 20%, transparent);right:0}.description-tabs-frame.can-scroll-left:before,.description-tabs-frame.can-scroll-right:after{opacity:1}.description-tabs::-webkit-scrollbar{display:none}.description-tabs button{min-width:88px;min-height:44px;color:var(--ink-muted-80,#333);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;flex:1 0 auto;padding:0 12px;font-size:14px;font-weight:600;position:relative}.description-tabs button>svg{vertical-align:-2px;margin-left:5px;display:inline-block}.description-tabs button:after{content:"";background:0 0;border-radius:999px;height:2px;position:absolute;bottom:0;left:12px;right:12px}.description-tabs button.is-active{color:var(--accent)}.description-tabs button.is-active:after{background:var(--accent)}.description-tabs button:focus-visible{background:color-mix(in srgb, var(--accent), transparent 94%);outline:none}.description-tabs button:focus-visible:after{height:3px}.rich-description-compact{padding-top:16px}.project-related-content{border-top:1px solid var(--hairline);margin-top:20px;padding-top:16px}.project-related-content h3{color:var(--ink);margin:0 0 6px;font-size:15px;line-height:1.4}.project-related-content ol{margin:0;padding:0;list-style:none}.project-related-content li+li{border-top:1px solid var(--divider-soft)}.project-related-content li a{min-height:44px;color:var(--accent);justify-content:space-between;align-items:center;gap:14px;text-decoration:none;display:flex}.project-related-content li a:hover span,.project-related-content li a:focus-visible span{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.project-related-content li a:focus-visible,.project-related-content>button:focus-visible{outline:2px solid var(--accent-focus);outline-offset:2px}.project-related-content li span{min-width:0;font-size:14px;font-weight:600;line-height:1.45}.project-related-content small{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px}.project-related-content>button{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:600;display:inline-flex}.rich-description-state,.locked-section-state{border:1px solid var(--hairline);background:var(--canvas);color:var(--muted);border-radius:18px;margin-top:16px;padding:20px;font-size:14px;line-height:1.55}.rich-description-state.is-error{color:var(--warning)}.locked-section-state{min-height:210px;padding:0;position:relative;overflow:hidden}.locked-section-blur{filter:blur(4px);opacity:.36;pointer-events:none;-webkit-user-select:none;user-select:none;gap:14px;padding:22px;display:grid}.locked-section-blur span{color:var(--ink);font-size:14px;line-height:1.7}.locked-section-gate{-webkit-backdrop-filter:blur(2px);text-align:center;background:#ffffff8a;align-content:center;justify-items:center;gap:10px;padding:24px;display:grid;position:absolute;inset:0}.locked-section-gate>svg{color:var(--accent)}.locked-section-gate strong{color:var(--ink);font-size:17px}.locked-section-state button{margin-top:4px;padding:0 18px}.rich-description{color:var(--ink);overflow-wrap:anywhere;gap:12px;font-size:17px;line-height:1.47;display:grid}.rich-description>:first-child,.rich-description blockquote>:first-child,.rich-description .rich-callout>:first-child,.rich-description td>:first-child,.rich-description th>:first-child{margin-top:0}.rich-description>:last-child,.rich-description blockquote>:last-child,.rich-description .rich-callout>:last-child,.rich-description td>:last-child,.rich-description th>:last-child{margin-bottom:0}.rich-description p,.rich-description h4,.rich-description h5,.rich-description h6,.rich-description figure,.rich-description blockquote,.rich-description pre,.rich-description ul,.rich-description ol,.rich-description aside{margin:0}.rich-description h4{letter-spacing:-.23px;margin-top:10px;font-size:21px;font-weight:600;line-height:1.24}.rich-description h5,.rich-description h6{margin-top:8px;font-size:17px;font-weight:600;line-height:1.32}.rich-description a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent), transparent 68%);text-decoration-color:color-mix(in srgb, var(--accent), transparent 68%);text-underline-offset:3px}.rich-description code{background:#1d1d1f12;border-radius:5px;padding:2px 5px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88em}.rich-description pre{border:1px solid var(--hairline);color:#fff;background:#1d1d1f;border-radius:11px;padding:14px;overflow-x:auto}.rich-description pre code{color:inherit;white-space:pre-wrap;background:0 0;padding:0}.rich-description blockquote{border:1px solid color-mix(in srgb, var(--accent), transparent 82%);background:var(--accent-soft);color:var(--ink-muted-80,#333);border-radius:11px;gap:9px;padding:12px 14px;display:grid}.rich-callout{border:1px solid var(--hairline);background:var(--surface,#fafafc);border-radius:11px;gap:9px;padding:13px 14px;display:grid}.rich-description hr{border:0;border-top:1px solid var(--hairline);width:100%;margin:4px 0}.rich-description ul,.rich-description ol{gap:7px;padding-left:22px;display:grid}.rich-description li>div{min-width:0}.rich-check-list{list-style:none;padding-left:0!important}.rich-check-list li{align-items:flex-start;gap:9px;display:flex}.check-indicator{border:1px solid var(--hairline);background:var(--canvas);border-radius:5px;flex:none;width:16px;height:16px;margin-top:4px}.check-indicator.is-checked{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--canvas)}.rich-image{border:1px solid var(--hairline);background:var(--canvas);box-shadow:var(--product-shadow);border-radius:11px;overflow:hidden}.rich-image img{width:100%;height:auto;display:block}.rich-image-open{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.rich-image-open:focus-visible{outline:3px solid var(--accent-focus);outline-offset:-3px}.rich-image figcaption{color:var(--muted);padding:9px 11px;font-size:12px;line-height:1.4}.rich-table-scroll{border:1px solid var(--hairline);background:var(--canvas);scrollbar-width:thin;border-radius:11px;overflow-x:auto}.rich-table-scroll table{border-collapse:collapse;width:100%;min-width:360px;font-size:14px;line-height:1.43}.rich-table-scroll th,.rich-table-scroll td{border-right:1px solid var(--hairline);border-bottom:1px solid var(--hairline);text-align:left;vertical-align:top;min-width:92px;padding:10px 11px}.rich-table-scroll th{background:var(--surface,#fafafc);font-weight:600}.rich-table-scroll tr:last-child>*{border-bottom:0}.rich-table-scroll tr>:last-child{border-right:0}.rich-table-scroll .rich-description{font-size:inherit;gap:6px}.rich-file{border:1px solid var(--hairline);background:var(--canvas);min-height:58px;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);border-radius:11px;align-items:center;gap:11px;padding:10px 12px;display:flex;color:var(--ink)!important;text-decoration:none!important}.rich-file:hover{border-color:color-mix(in srgb, var(--accent), white 55%);background:var(--surface,#fafafc)}.rich-file-icon{background:color-mix(in srgb, var(--accent), white 90%);width:36px;height:36px;color:var(--accent);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.rich-file-copy{flex:1;min-width:0}.rich-file-copy strong,.rich-file-copy small{display:block}.rich-file-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.rich-file-copy small{color:var(--muted);margin-top:3px;font-size:12px}.timeline{gap:12px;margin:0;padding:0;list-style:none;display:grid}.timeline li{gap:4px;padding:4px 0 4px 20px;display:grid;position:relative}.timeline li:before{content:"";background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:9999px;position:absolute;top:10px;left:2px}.timeline time,.timeline span,.policy-item small,.source-item span{color:var(--muted);font-size:12px}.timeline p{margin-bottom:0}.policy-item{gap:6px;padding:12px;display:grid}.source-list{gap:8px;display:grid}.source-item{color:inherit;gap:4px;padding:11px 12px;text-decoration:none;display:grid}.source-item:hover{border-color:var(--accent)}.floating-action{width:52px;height:52px;color:var(--ink);cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);background:0 0;border:0;border-radius:18px;justify-content:center;align-items:center;display:inline-flex;position:relative}.floating-action:hover{background:#0066cc14}.floating-action svg,.dock-close svg{stroke-width:2.35px}.floating-action.is-active{color:#fff;background:var(--accent);border-color:#0000}.floating-action.is-active:hover{background:var(--accent-focus)}.floating-action:active{transform:scale(.95)}.map-action-group{z-index:7;right:max(18px, env(safe-area-inset-right));bottom:calc(var(--app-nav-height) + max(22px, env(safe-area-inset-bottom)));border:1px solid var(--line);background:var(--liquid-surface-strong);height:62px;-webkit-backdrop-filter:var(--blur);border-radius:18px;align-items:center;padding:4px;display:flex;position:absolute}.map-action-divider{background:var(--hairline);width:1px;height:24px}.map-zoom-group{--map-zoom-visual-width:32px;--map-zoom-visual-height:62px;z-index:7;left:max(18px, env(safe-area-inset-left));bottom:calc(var(--app-nav-height) + max(22px, env(safe-area-inset-bottom)));width:44px;height:88px;box-shadow:none;opacity:.58;transition:opacity var(--motion-fast) var(--ease-standard);background:0 0;border:0;grid-template-rows:repeat(2,44px);padding:0;display:grid;position:absolute}.map-zoom-group:before{width:var(--map-zoom-visual-width);height:var(--map-zoom-visual-height);-webkit-backdrop-filter:saturate(125%)blur(8px);content:"";pointer-events:none;background:#f5f5f761;border:1px solid #1d1d1f0f;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-zoom-group:hover,.map-zoom-group:focus-within{opacity:.82}.map-zoom-action{z-index:1;color:#1d1d1f6b;cursor:pointer;width:100%;height:100%;min-height:0;transition:color var(--motion-fast) var(--ease-standard);background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;padding:0;font-size:18px;font-weight:400;line-height:1;display:inline-flex;position:relative}.map-zoom-action:hover,.map-zoom-action:focus-visible{color:#1d1d1fad}.map-zoom-action:active{color:var(--ink)}.map-zoom-action:disabled{cursor:default;opacity:.38}.map-zoom-action>span{display:inline-flex}.map-zoom-action:first-child>span{transform:translateY(calc((88px - var(--map-zoom-visual-height)) / 4))}.map-zoom-action:last-child>span{transform:translateY(calc((var(--map-zoom-visual-height) - 88px) / 4))}.map-zoom-divider{z-index:2;width:var(--map-zoom-visual-width);pointer-events:none;background:#1d1d1f0f;height:1px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.glass-dock{z-index:15;bottom:calc(var(--app-nav-height) + max(22px, env(safe-area-inset-bottom)) + 78px);background:#f5f5f7e0;border-radius:18px;padding:16px;position:absolute}.search-dock{right:max(22px, env(safe-area-inset-right));width:min(430px,100vw - 44px)}.list-dock{left:max(22px, env(safe-area-inset-left));flex-direction:column;gap:12px;width:min(500px,100vw - 44px);max-height:min(64vh,620px);display:flex}.dock-head{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;margin-bottom:12px;display:grid}#resultCount{min-width:28px;height:28px;color:var(--accent);background:var(--accent-soft);border-radius:999px;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.dock-close{border:1px solid var(--hairline);background:var(--pearl);width:44px;height:44px;color:var(--muted);cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.dock-close:hover{background:var(--canvas);color:var(--ink)}.search-box,.filter-grid label{gap:6px;display:grid}.search-box span,.filter-grid span{color:var(--muted);font-size:12px;font-weight:600}input,select{border:1px solid var(--hairline);background:var(--canvas);width:100%;height:44px;color:var(--ink);box-shadow:none;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);border-radius:999px}input{padding:0 14px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.5 5.25L7 8.75L10.5 5.25' fill='none' stroke='%231d1d1f' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 18px center;background-repeat:no-repeat;background-size:14px 14px;padding:0 42px 0 14px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent-focus);outline-offset:2px}input:focus,select:focus{border-color:var(--accent-focus)}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.search-results,.search-hint{margin-top:12px}.search-results{gap:8px;max-height:min(36vh,330px);display:grid;overflow:auto}.search-result{border:1px solid var(--hairline);background:var(--canvas);width:100%;min-height:58px;color:inherit;text-align:left;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:18px;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:12px;padding:11px 12px;display:grid}.search-result:hover{border-color:var(--accent);background:var(--pearl)}.search-result strong,.search-result small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.search-result strong{font-size:14px}.search-result small,.search-hint span{color:var(--muted);font-size:12px}.search-result small{margin-top:5px}.search-match{background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:0 2px}.search-hint{border:1px solid var(--hairline);background:var(--canvas);border-radius:18px;align-items:center;min-height:44px;padding:0 12px;display:flex}.project-list{gap:8px;padding-right:2px;display:grid;overflow:auto}.project-row{border:1px solid var(--hairline);background:var(--canvas);width:100%;min-height:70px;color:inherit;text-align:left;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border-radius:18px;grid-template-columns:12px minmax(0,1fr);align-items:center;gap:12px;padding:12px;display:grid}.project-row.is-active,.project-row:hover{border-color:var(--accent);background:var(--pearl)}
@keyframes panel-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.project-row strong,.project-row small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.project-row strong{font-size:14px}.project-row small{color:var(--muted);margin-top:5px;font-size:12px}.type-dot{background:var(--dot-color);border-radius:999px;width:10px;height:10px}.empty-state{text-align:center;gap:8px;padding:12px;display:grid}.empty-state p{color:var(--muted);margin:0}@media (max-width:980px){.floating-stats{width:min(360px,100vw - 36px);min-width:0;top:94px;left:18px;right:auto}.detail-panel{max-height:45vh;top:auto;bottom:102px;right:18px}}@media (max-width:680px){h1{font-size:21px}.glass-brand{left:12px;top:max(12px, env(safe-area-inset-top));border-radius:18px;gap:8px;width:auto;max-width:calc(100vw - 24px);padding:8px 12px 7px}.glass-brand-logo{width:32px;height:32px}.glass-brand h1{font-size:18px;line-height:1.15}.glass-brand .eyebrow{font-size:10px}.floating-stats{display:none}.detail-panel{--detail-panel-padding:16px;--detail-panel-surface:var(--parchment);top:max(54px, calc(env(safe-area-inset-top) + 34px));left:8px;right:8px;bottom:calc(var(--app-nav-height) + 8px);border-color:color-mix(in srgb, var(--liquid-edge), var(--liquid-edge-dark) 26%);background:var(--detail-panel-surface);-webkit-backdrop-filter:none;width:auto;max-height:none;box-shadow:var(--liquid-depth);transform:translate3d(0, var(--sheet-offset,0), 0);will-change:transform;overscroll-behavior:none;border-radius:18px;padding:0;animation:none;overflow:hidden}.detail-panel:before{content:"";z-index:1;background:var(--detail-panel-surface);pointer-events:none;height:32px;position:absolute;top:0;left:0;right:0}.detail-panel-scroll{height:100%;padding:32px var(--detail-panel-padding) calc(24px + env(safe-area-inset-bottom));background:var(--detail-panel-surface);overscroll-behavior:contain;scrollbar-width:none;display:block;overflow:auto}.detail-panel-scroll::-webkit-scrollbar{display:none}.detail-panel.is-collapsed .detail-panel-scroll,.detail-panel.is-dragging .detail-panel-scroll{overflow:hidden}.detail-panel.is-dragging .detail-panel-scroll{pointer-events:none;-webkit-user-select:none;user-select:none}.detail-sheet-grabber{z-index:12;cursor:grab;touch-action:none;background:0 0;border:0;place-items:center;width:100%;height:44px;margin:0;padding:0;display:grid;position:absolute;top:0;left:0}.detail-sheet-grabber:active{cursor:grabbing}.detail-sheet-grabber span{width:42px;height:5px;transition:transform var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);background:#1d1d1f9e;border-radius:9999px;margin-top:8px;box-shadow:0 1px #ffffffb8}.detail-sheet-grabber:active span{background:#1d1d1f5c;transform:scaleX(1.2)}.detail-head{cursor:grab;touch-action:none}.detail-head:active{cursor:grabbing}.detail-panel-scroll>.rich-description-section:first-child>.detail-identity-sticky{margin-top:calc(var(--detail-panel-padding) * -1)}.detail-panel .detail-identity-sticky,.detail-panel .description-tabs-sticky{background:var(--detail-panel-surface);-webkit-backdrop-filter:none}.detail-close,.detail-head-actions{z-index:5;position:relative}.glass-brand.is-detail-expanded{opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--motion-medium) var(--ease-standard), transform var(--motion-medium) var(--ease-standard), visibility 0s linear var(--motion-medium);animation:none;transform:translateY(-12px)scale(.97)}.project-gallery{aspect-ratio:auto;border-radius:18px;height:clamp(132px,20dvh,160px)}.gallery-nav{width:44px;height:44px}.image-lightbox-header{min-height:64px;padding-bottom:6px}.image-lightbox-header>div:first-child strong{display:none}.image-lightbox-header>.image-lightbox-actions{gap:4px}.image-lightbox-scale{width:52px}.image-lightbox-stage{inset:64px 12px calc(68px + env(safe-area-inset-bottom))}.image-lightbox-nav{top:auto;bottom:max(12px, env(safe-area-inset-bottom));width:48px;height:48px;transform:none}.image-lightbox-nav:active{transform:scale(.94)}.image-lightbox-prev{left:calc(50% - 58px)}.image-lightbox-next{right:calc(50% - 58px)}.rich-description-compact{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.rich-description,.rich-description-fallback{font-size:14px;line-height:1.55}.rich-description h4{font-size:18px}.rich-description h5,.rich-description h6{font-size:15px}.detail-panel.is-dock-open{display:none}.filter-grid{grid-template-columns:1fr 1fr}.map-marker{max-width:172px}.marker-label{font-size:12px}.glass-dock{left:12px;right:12px;bottom:calc(max(14px, env(safe-area-inset-bottom)) + 76px);width:auto;padding:14px}.list-dock{max-height:58vh}.map-action-group{right:12px;bottom:calc(var(--app-nav-height) + max(14px, env(safe-area-inset-bottom)));height:56px}.map-zoom-group{--map-zoom-visual-width:29px;--map-zoom-visual-height:56px;left:max(12px, env(safe-area-inset-left));bottom:calc(var(--app-nav-height) + max(14px, env(safe-area-inset-bottom)))}.floating-action{width:46px;min-width:44px;height:46px;min-height:44px}}
@media (min-width:681px){.bottom-navigation{width:min(520px,100vw - 36px);left:auto;right:50%;transform:translate(50%)}}@media (max-width:980px){.detail-panel{bottom:calc(var(--app-nav-height) + 102px)}}@media (max-width:680px){.detail-panel{bottom:calc(var(--app-nav-height) + 8px)}.glass-dock{bottom:calc(var(--app-nav-height) + max(14px, env(safe-area-inset-bottom)) + 76px)}.section-page{padding-inline:18px}.section-brand{margin-bottom:38px}.news-feed-toolbar{flex-direction:column;align-items:flex-start;gap:10px}.news-category-tabs{width:100%;margin-right:-18px;padding-right:18px}.news-list-item>a{grid-template-columns:25px minmax(0,1fr) 20px;gap:11px;padding:23px 0}.news-list-content h2{font-size:20px}.news-list-content>p{-webkit-line-clamp:4;line-height:1.65}.news-article,.news-detail-state{width:calc(100% - 36px)}.news-article-header{padding:34px 0 28px}.news-article-header h1{font-size:34px;line-height:1.16}.news-article-summary{font-size:16px}.news-share-actions{margin-top:16px}.news-related-projects{grid-template-columns:1fr;gap:7px;margin:0 0 36px}.news-article-body,.news-sources{width:100%;margin-left:0}.news-article-body h2{margin-top:38px;font-size:22px}.news-article-body p{font-size:15px;line-height:1.8}.news-sources a{grid-template-columns:minmax(0,1fr) 18px;gap:4px 10px;padding:12px 0}.news-sources a>span,.news-sources a>strong,.news-sources a>time{grid-column:1}.news-sources a>svg{grid-area:1/2/span 3}.community-feed{grid-template-columns:minmax(0,1fr);gap:18px}.community-workbench{margin-bottom:24px}.community-workbench-actions{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.community-workbench-actions button,.community-workbench-actions a{min-width:max-content}.community-form-row{grid-template-columns:1fr}.community-topic-rail{scrollbar-width:none;gap:6px;width:calc(100% + 18px);margin-right:-18px;padding-right:18px;display:flex;position:static;overflow-x:auto}.community-topic-rail::-webkit-scrollbar{display:none}.community-rail-label{display:none}.community-topic-rail button{border:1px solid var(--hairline);background:var(--canvas);white-space:nowrap;border-radius:9999px;min-width:max-content;min-height:44px;padding:0 14px;font-size:13px;display:block}.community-topic-rail button small{display:none}.community-topic-rail button.is-active{border-color:var(--accent);background:var(--accent);color:#fff}.community-tag-filter{width:calc(100% + 18px);margin-right:-18px;padding-right:18px}.community-post-item>a{grid-template-columns:25px minmax(0,1fr) 20px;gap:11px;padding:23px 0}.community-post-item h2{font-size:20px}.community-post-summary{-webkit-line-clamp:4;line-height:1.65}.community-article,.community-detail-state{width:calc(100% - 36px)}.community-article>header{padding:34px 0 28px}.community-article h1{font-size:34px;line-height:1.16}.community-article-summary{font-size:16px}.community-article-body,.community-comments{width:100%}.community-comments-heading{align-items:flex-start}.community-report-control form{right:18px;bottom:calc(var(--app-nav-height) + 18px);width:auto;position:fixed;top:auto;left:18px}.community-moderation-page{width:calc(100% - 36px)}.community-moderation-page>header{grid-template-columns:1fr}.community-moderation-workspace{padding-top:20px}.community-moderation-tabs{width:100%}.community-moderation-tabs button{flex:1 0 auto;justify-content:center;min-width:max-content;padding:0 14px}.community-moderation-panel{padding-top:18px}.community-article-body h2{font-size:22px}.profile-identity{flex-wrap:wrap;align-items:flex-start;padding:20px}.profile-avatar{width:52px;height:52px}.profile-account-action{width:100%}.profile-favorites,.profile-content{padding:20px}.profile-content-summary{grid-template-columns:1fr}.notification-panel{padding-inline:14px}.notification-panel-header{align-items:center}.profile-editor-backdrop{align-items:end;padding:0}.profile-editor{width:100%;max-height:calc(100dvh - env(safe-area-inset-top));padding:26px 20px calc(22px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;overflow-y:auto}.auth-dialog-backdrop{align-items:end;padding:0}.auth-dialog{width:100%;padding:26px 20px calc(22px + env(safe-area-inset-bottom));border-bottom:0;border-left:0;border-right:0;border-radius:18px 18px 0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-transparency:reduce){.bottom-navigation,.glass-brand,.floating-stats,.detail-panel,.glass-dock,.map-action-group,.map-zoom-group{-webkit-backdrop-filter:none;background:#f5f5f7fa}}@media (prefers-contrast:more){.bottom-navigation,.glass-brand,.floating-stats,.detail-panel,.glass-dock,.map-action-group,.map-zoom-group{border-color:#1d1d1fad}.muted,.eyebrow,.section-intro,.profile-menu-item p,.placeholder-panel p{color:var(--ink)}}

