:root{--wine:#710b2b;--wine-dark:#510418;--ivory:#faf3e8;--gold:#c18a45;--line:#dfd4c7;--ink:#15130f;--green:#114b30;--scale:1}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%}body{height:100dvh;background:#29231e;display:grid;place-items:center;overflow:hidden;color:var(--ink);font-family:Georgia,'Times New Roman',serif}button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button{border:0}button:active{filter:brightness(.94)}svg.icon{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}button svg{pointer-events:none}#stage{width:calc(414px * var(--scale));height:calc(834px * var(--scale));position:relative}#phone{position:absolute;left:0;top:0;width:414px;height:834px;padding:12px;background:#080806;border-radius:49px;transform:scale(var(--scale));transform-origin:top left;box-shadow:0 18px 55px #0008}.screen{height:810px;width:390px;position:relative;overflow:hidden;border-radius:37px;isolation:isolate;background:var(--ivory)}.backdrop{position:absolute;inset:-15px;background:linear-gradient(#33201514,#3717067a),url('assets/porto.jpg') center/cover;filter:blur(9px);z-index:-1}.status{position:absolute;top:16px;left:34px;right:24px;height:23px;display:flex;align-items:center;justify-content:space-between;z-index:5;color:white;font:600 15px Arial,sans-serif}.island{position:absolute;left:50%;top:-8px;transform:translateX(-50%);width:108px;height:30px;border-radius:25px;background:#000}.status-icons{display:flex;align-items:center;gap:4px}.status-icons svg{width:46px;height:18px}.battery{width:23px;height:11px;background:#fff;border:2px solid #ffffff88;border-radius:3px;box-shadow:inset -3px 0 #bbb;position:relative}.battery:after{content:'';position:absolute;right:-4px;top:2px;width:2px;height:4px;background:#fff8}.home-indicator{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);width:148px;height:5px;border-radius:8px;background:#0a0a09;z-index:6}#app{position:absolute;inset:0}.page{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;padding:64px 22px 27px}.primary{width:100%;min-height:54px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:26px;background:linear-gradient(130deg,var(--wine-dark),#800e31);border:1px solid #d5b28b99;color:white;font-size:20px}.primary .icon{width:21px;height:21px}.outline{background:#18100a50;color:white;border:1px solid #fff;border-radius:26px;min-height:54px;width:100%;font-size:19px;font-style:italic}.icon-button{display:inline-flex;align-items:center;justify-content:center;padding:0;background:transparent;width:34px;height:34px;border-radius:50%}.back{color:inherit}.intro{margin:12px 3px 17px}.intro h1{font-size:28px;line-height:1.14;margin:0 0 13px;font-weight:700;letter-spacing:-.7px}.intro p{font-size:19px;line-height:1.22;margin:0;font-style:italic}.intro p strong{font-size:19px;font-weight:normal}.step-row{display:flex;align-items:center;gap:35px;font-size:14px;margin:0 2px 12px;height:20px}.step-line{height:1px;flex:1;background:#eee5d580;position:relative}.step-line:after{content:'›';position:absolute;right:-2px;top:-10px;color:#eee5d580;font-size:20px}.flow-back{height:25px;display:flex;align-items:center}.flow-back .icon-button{width:24px;height:24px}.flow-back .icon{width:20px;height:20px}.panel{background:linear-gradient(115deg,#fcf7ee,#f3e9db);border:1px solid #fef9f1aa;border-radius:22px;padding:18px 19px;box-shadow:0 3px 10px #331a0810}.flow .footer-action{margin-top:auto;padding-top:10px}.flow.profile{color:white}.profile .panel{color:var(--ink);flex:1;padding:16px 20px 13px;display:flex;flex-direction:column;justify-content:space-between;gap:15px}.field label,.field-title{display:block;font-size:19px;margin-bottom:8px}.chips{display:flex;gap:8px}.chip{min-height:39px;padding:8px 12px;background:#fbf5eb;border:1px solid var(--line);border-radius:17px;font-size:15px;line-height:1.05;display:flex;align-items:center;justify-content:center;gap:8px;text-align:center}.chip.active{color:#fff;background:var(--wine);border-color:#a66879}.chips .chip{flex:1}.gender .chip{height:45px;white-space:nowrap;font-size:16px;padding:8px 10px}.gender .icon{width:21px;height:21px}.seeking .chip{height:62px;display:flex;flex-direction:column;gap:4px;border-radius:16px;font-size:14px;min-width:0;padding:6px}.seeking .icon{height:23px;width:23px}.input-shell{height:44px;display:flex;align-items:center;border:1px solid var(--line);border-radius:15px;background:#fbf5eb;padding:0 13px;gap:12px}.input-shell input{border:0;outline:none;background:none;min-width:0;width:100%;font-size:17px;color:#242220}.input-shell .icon{width:20px;height:20px;color:#45443f}.input-shell button{flex-shrink:0}.input-shell select{border:0;background:none;width:100%;font-size:17px;appearance:none;color:#242220}.affinities .intro{margin:0 3px 13px}.affinities .intro h1{margin-bottom:5px}.affinities .intro p{font-size:18px}.affinities .panel{padding:12px 15px;display:flex;flex-direction:column;gap:13px}.affinities .field-title{font-size:16px;margin-bottom:6px}.affinities .chip{min-height:37px;padding:6px 9px;font-size:14px;border-radius:17px}.chip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 8px}.family .chip{font-size:12px;padding:6px 8px;white-space:nowrap}.family{gap:5px}.projects .chip-grid{grid-template-columns:1.2fr 1fr 1fr}.photos{color:white}.photos .intro{margin:0 4px 14px}.photos .intro h1{font-size:27px;margin-bottom:6px}.photos .intro p{font-size:18px;line-height:1.2}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:169px 135px;gap:5px;padding:0 0 9px}.photo-tile{border:2px solid #fff9;border-radius:13px;overflow:hidden;position:relative;background:#eadbc6;padding:0;display:block}.photo-tile .tile-photo{position:absolute;inset:0;background:url('assets/porto.jpg') center/cover}.photo-tile:nth-child(2) .tile-photo{background-position:60% 55%}.photo-tile:nth-child(3) .tile-photo{background-position:98% 12%}.photo-tile:nth-child(4) .tile-photo{background-position:95% 0%}.photo-tile:nth-child(5) .tile-photo{background-position:54% 95%}.photo-tile:nth-child(6) .tile-photo{background-position:98% 80%}.photo-tile.add{background:var(--ivory);color:#111;outline:1px dashed #ad6877;outline-offset:-5px;padding:18px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:17px;line-height:1.15}.photo-tile.add .icon{width:30px;height:30px}.media-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.media-card{min-height:133px;border-radius:17px;background:var(--ivory);padding:16px 6px 12px;display:flex;align-items:center;flex-direction:column;justify-content:center;font-size:17px;line-height:1.14;text-align:center;color:#0c0b0a}.media-card .icon{width:31px;height:31px;margin-bottom:12px}.media-card small{display:block;font-size:15px;color:#544e46}.photos .footer-action{margin-top:auto}.welcome{padding:66px 17px 20px;align-items:center;color:var(--wine)}.welcome-photo{position:absolute;inset:0;z-index:-1;background:linear-gradient(#f1b47780 0%,transparent 37%,#0005 100%),url('assets/porto.jpg') center/cover}.logo{width:94px;height:90px;border-radius:24px;flex-shrink:0;background-image:url('assets/logo-source.png');background-repeat:no-repeat;background-size:129px 164px;background-position:-15px -27px;box-shadow:0 0 0 1px #d2b387}.welcome h1{font-size:56px;letter-spacing:-1.5px;margin:10px 0 4px;line-height:1.1}.welcome p{font-style:italic;color:#15130e;font-size:24px;text-align:center;line-height:1.17;margin:4px 0 0}.welcome-actions{width:100%;margin-top:auto;display:grid;gap:9px}.welcome .primary{min-height:55px;font-size:21px}.welcome .outline{min-height:55px}.welcome~.home-indicator{display:none}.app-page{padding:58px 16px 97px}.app-header{display:flex;align-items:center;justify-content:space-between;color:white;height:46px;margin-bottom:10px;flex-shrink:0}.app-header h1{font-size:27px;font-weight:400;line-height:1;margin:0}.tabs{display:flex;gap:8px;margin:0 4px 12px;flex-shrink:0}.tab{height:39px;flex:1;border:1px solid #ebdbc6;border-radius:13px;background:#faf3e8;font-size:16px;position:relative;display:flex;align-items:center;justify-content:center;gap:8px}.tab.active{background:var(--wine);color:white;border-color:#b77683}.nav{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(110deg,#fcf6ec,#f7ede0);height:84px;border-radius:17px 17px 0 0;border-top:1px solid #e1d1bd;display:grid;grid-template-columns:repeat(4,1fr);padding:10px 8px 20px;z-index:4}.nav button{position:relative;color:#5b5a55;background:none;display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;font-size:14px}.nav .icon{width:27px;height:27px}.nav button.active{color:var(--wine);font-weight:bold}.nav button.active .discover-icon{fill:var(--wine);stroke:var(--wine)}.nav button.active .discover-icon path{stroke:var(--ivory)}.badge{display:grid;place-items:center;width:23px;height:23px;background:#f20810;border:2px solid #fff;border-radius:50%;font:12px Arial,sans-serif;color:white}.nav .badge{position:absolute;left:calc(50% + 5px);top:-3px;width:21px;height:21px}.discover-card{position:relative;width:100%;flex:1;border:8px solid var(--ivory);border-radius:25px;overflow:hidden;background:#231c16;padding:0;min-height:0;color:white;box-shadow:0 2px 3px #0003;display:block;text-align:left}.portrait{position:absolute;inset:0;background:url('assets/profile-placeholder.svg') center top / auto 137% no-repeat;background-color:#212218}.discover-card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 52%,#000d 100%);pointer-events:none}.online{font-size:14px;color:#39c65e;display:flex;align-items:center;gap:4px;white-space:nowrap}.online:before{content:'';width:9px;height:9px;background:#1bc846;border-radius:50%;display:block}.online-pill{position:absolute;top:12px;right:10px;background:#122111d9;padding:5px 7px;border-radius:14px;z-index:1}.profile-info{position:absolute;bottom:14px;left:14px;right:12px;z-index:1}.profile-info h2{font-size:30px;margin:0 0 10px;line-height:1.05;letter-spacing:-.6px}.info-row{display:flex;align-items:center;gap:8px;font-size:18px;margin:5px 0;line-height:1.12}.info-row .icon{height:17px;width:17px;stroke-width:2}.heart-fab{width:67px;height:67px;border-radius:50%;background:var(--ivory);display:grid;place-items:center;color:#15130f;position:absolute;right:13px;bottom:16px;z-index:2;box-shadow:0 2px 5px #0002}.heart-fab .icon{width:33px;height:33px}.heart-fab.liked{color:var(--wine)}.heart-fab.liked .icon{fill:var(--wine)}.discover-card .profile-info{right:75px}.card-frame{position:relative;flex:1;min-height:0;display:flex;margin:0 0 0}.detail{padding:0;background:var(--ivory)}.detail-hero{position:relative;height:476px;flex-shrink:0;color:white;overflow:hidden}.detail-hero .portrait{background-size:auto 145%;background-position:center -3px}.detail-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 43%,#000e 100%);pointer-events:none}.detail-controls{position:absolute;left:15px;right:15px;top:51px;display:flex;justify-content:space-between;z-index:1}.detail-controls .icon-button{width:41px;height:41px;background:#302e22a0}.detail .profile-info{bottom:21px;left:19px;right:16px}.detail-name{display:flex;align-items:center;gap:18px}.detail .profile-info h2{font-size:29px;margin:0 0 8px}.detail .info-row{font-size:18px}.detail-content{position:relative;flex:1;padding:0 16px 22px;margin-top:-10px;z-index:1;display:flex;flex-direction:column;background:var(--ivory);border-radius:18px 18px 0 0;min-height:0}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:5px 0 7px}.gallery button{height:73px;border:2px solid #fff;border-radius:10px;padding:0;overflow:hidden;background:url('assets/porto.jpg') center/cover}.gallery button:nth-child(2){background-position:95% 0}.gallery button:nth-child(3){background-image:url('assets/profile-placeholder.svg');background-position:center 9%;background-size:100% auto}.gallery button:nth-child(4){background-position:55% 65%}.quote{font-size:18px;font-style:italic;line-height:1.24;text-align:center;margin:0 3px 12px}.interests{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 8px;margin:0 16px}.interests .chip{height:34px;min-height:34px;font-size:15px}.detail-actions{display:flex;justify-content:space-evenly;gap:15px;margin-top:auto;padding:12px 20px 0}.round-action{width:79px;height:79px;border-radius:50%;background:#fdf8ef;border:1px solid #e0d6c9;box-shadow:0 2px 4px #8b725930;display:grid;place-items:center}.round-action .icon{width:37px;height:37px;stroke-width:1.6}.round-action.star{background:var(--gold);color:white;border-color:#d8b88e}.round-action.star .icon,.round-action.like .icon{fill:currentColor;stroke-width:1.3}.round-action.like{background:var(--wine);color:white;border-color:#a74e64}.messages{padding:58px 18px 93px}.messages .app-header{margin-bottom:9px}.search{background:var(--ivory);border-radius:13px;display:flex;align-items:center;padding:0 14px;gap:12px;height:43px;flex-shrink:0;margin-bottom:12px}.search .icon{width:20px;height:20px;color:#55534f}.search input{background:none;border:0;outline:0;width:100%;min-width:0;font-size:16px}.messages .tabs{margin:0 0 7px;gap:7px}.messages .tab{height:38px;font-size:15px}.messages .tab .badge{margin-right:-9px}.conversation-list{flex:1;min-height:0;background:linear-gradient(#fbf5ea,#f4eadd);margin:0 -2px;padding:0 2px;border-radius:17px 17px 0 0;overflow:auto;scrollbar-width:none}.conversation{width:100%;height:84px;display:flex;align-items:center;gap:13px;padding:9px 0;background:transparent;border-bottom:1px solid #e8dfd499;text-align:left}.avatar{flex-shrink:0;width:64px;height:64px;border-radius:50%;background:url('assets/profile-placeholder.svg') center 6% / 100% auto;overflow:hidden}.avatar.alt1{background-position:45% 11%;filter:sepia(.2)}.avatar.alt2{background-position:55% 20%;filter:saturate(.65)}.avatar.alt3{background-position:center 8%;filter:sepia(.4)}.conversation-copy{min-width:0;flex:1}.conversation-copy strong{display:block;font-size:18px;margin-bottom:5px}.conversation-copy p{font-size:15px;color:#615d54;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-meta{display:flex;flex-direction:column;align-items:center;gap:5px;width:34px;font-size:13px;color:#66615a}.conversation-meta .badge{width:24px;height:24px}.no-results{padding:22px;font-size:17px;text-align:center}.filters{padding:64px 15px 29px}.filters .flow-back{color:white;height:28px;margin:0 0 10px 4px}.filter-panel{padding:20px 20px 15px;flex:1;display:flex;flex-direction:column;gap:17px;border-radius:23px;min-height:0}.filter-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.filter-heading h1{font-size:23px;margin:0;letter-spacing:-.4px}.text-button{padding:0;background:none;color:var(--wine);font-size:15px}.filter-field{display:flex;flex-direction:column;gap:8px}.filter-label{display:flex;justify-content:space-between;align-items:center;font-size:18px}.filter-label output{font-size:16px}.filter-field input[type=range]{width:100%;height:20px;margin:0;accent-color:var(--wine);cursor:pointer}.filter-field label{font-size:18px}.filter-field .input-shell{height:45px;padding:0 13px}.filter-field .input-shell select{font-size:17px}.filter-field .input-shell .icon{width:20px}.toggles{display:flex;flex-direction:column;gap:12px;margin-top:1px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:17px}.switch{width:54px;height:33px;flex-shrink:0;border:1px solid #ccc2b6;border-radius:20px;background:#d5ccbe;padding:3px;position:relative}.switch:before{content:'';display:block;width:25px;height:25px;border:1px solid #d8cdbf;border-radius:50%;background:#fcf9f1;transition:transform .15s}.switch[aria-checked=true]{background:var(--green);border-color:#0d4028}.switch[aria-checked=true]:before{transform:translateX(20px)}.filters .primary{margin-top:auto;min-height:52px}.filter-panel .toggles{margin-bottom:5px}.plain-page{background:var(--ivory)}.plain-page .app-header{color:var(--wine)}.plain-page .panel{padding:15px}.liked-card{height:480px}.liked-card .portrait{background-size:auto 138%}
dialog{position:absolute;inset:auto 15px 25px;width:360px;max-width:360px;max-height:705px;padding:20px;border:1px solid #d5c2a9;border-radius:23px;background:var(--ivory);color:var(--ink);box-shadow:0 12px 45px #0006;margin:0;overflow:auto}dialog::backdrop{background:#2011087a}dialog h2{font-size:25px;color:var(--wine);margin:0 0 17px}dialog h3{font-size:18px;margin:16px 0 8px}dialog p{font-size:17px;line-height:1.35}dialog .close-dialog{float:right;background:none;color:var(--wine);width:28px;height:28px;display:grid;place-items:center}dialog .field{margin:12px 0}dialog .primary{font-size:18px;min-height:47px;margin-top:15px}dialog .input-shell{background:#fff9}dialog textarea{width:100%;min-height:85px;resize:vertical;background:#fff9;border:1px solid var(--line);border-radius:13px;padding:10px}dialog .photo-preview{width:100%;height:280px;background:var(--wine-dark);object-fit:contain;border-radius:13px}dialog video{max-width:100%;border-radius:12px}dialog .bubble{padding:12px 14px;background:#e9dfd0;border-radius:16px 16px 16px 3px;margin:8px 26px 8px 0;font-size:16px;line-height:1.3;overflow-wrap:anywhere}dialog .bubble.mine{background:var(--wine);color:#fff;border-radius:16px 16px 3px 16px;margin:8px 0 8px 26px}dialog .thread{max-height:280px;overflow:auto;min-height:120px}dialog .message-form{display:flex;align-items:center;gap:8px;margin-top:10px}dialog .message-form input{min-width:0;flex:1;border:1px solid var(--line);background:white;border-radius:14px;padding:12px}dialog .message-form button{height:43px;width:43px;border-radius:50%;background:var(--wine);color:white;display:grid;place-items:center}#toast{position:absolute;left:24px;right:24px;bottom:101px;border-radius:16px;background:#510418f5;color:white;padding:13px;text-align:center;font-size:16px;line-height:1.2;z-index:8;opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s}#toast.visible{opacity:1;transform:none}.dialog-caption{font-size:14px!important;color:#655d50}.uploaded-tile{position:absolute;width:100%;height:100%;inset:0;object-fit:cover}.record-active{color:var(--wine)}.date-input{color-scheme:light}.detail-content .audio-button{display:none}
.screen,#app,.page{overflow:clip}.backdrop{inset:0;transform:scale(1.08);background-position:right top;background-image:linear-gradient(#f3b17f38,#37170655),url('assets/porto.jpg')}.profile .panel{min-height:0;gap:12px}.profile .field{flex-shrink:0}.projects .chip-grid{grid-template-columns:1.4fr 1fr 1fr}.projects .chip{font-size:13px}.affinities .intro p{font-size:17px}.affinities .intro h1{font-size:28px}.photos .intro,.photos .step-row{color:var(--ink)}.portrait{background-size:auto 142%;background-position:center -62px}.detail-hero .portrait{background-size:auto 155%;background-position:center -54px}.gallery button:nth-child(3){background-size:auto 150%;background-position:center -8px}
.profile .intro{margin-bottom:13px}.filter-panel{gap:28px}.filter-panel .toggles{gap:16px}.filter-field input[type=range]{appearance:none;-webkit-appearance:none;background:none;height:20px}.filter-field input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(to right,var(--wine) 0 var(--pct,54%),#e4d9cb var(--pct,54%) 100%)}.filter-field input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:19px;height:19px;border-radius:50%;background:var(--wine);border:0;margin-top:-8px}.filter-field input[type=range]::-moz-range-track{height:3px;background:#e4d9cb}.filter-field input[type=range]::-moz-range-progress{height:3px;background:var(--wine)}.filter-field input[type=range]::-moz-range-thumb{width:19px;height:19px;border-radius:50%;border:0;background:var(--wine)}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media(max-width:440px){body{background:#080806}#phone{box-shadow:none}}
