:root{--ink:#5e2e3a;--muted:#9d6a76;--line:#7437482e;--glass:#fffafaad;--glass-strong:#ffffffc7;--rose:#ef8fa7;--rose-deep:#9b3f5b;--honey:#f5c76b;--error:#c94a62}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,input{font:inherit}.stage{isolation:isolate;background:radial-gradient(circle at 24% 18%,#ffebf0d1,#ffebf000 34%),radial-gradient(circle at 76% 78%,#fff7deb8,#fff7de00 38%),linear-gradient(135deg,#fff3f6 0%,#fff9ee 52%,#fff2f5 100%);place-items:center;min-height:100svh;padding:24px;display:grid;position:relative;overflow:hidden}.stage:before,.stage:after{content:"";pointer-events:none;z-index:-1;position:absolute;inset:-26%}.stage:before{opacity:.58;will-change:transform;background:repeating-linear-gradient(118deg,#fff0 0 58px,#ffffff6b 59px 64px,#ef8fa714 65px 94px);animation:2s linear infinite lineDrift;inset:-260px;transform:translate(0,0)}.stage:after{opacity:.66;background:linear-gradient(90deg,#f5c76b33,#f5c76b00 30%),linear-gradient(#9b3f5b1c,#9b3f5b00 48%)}.gate{background:var(--glass);border:1px solid var(--line);opacity:.9;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;max-width:min(420px,100vw - 32px);padding:10px;display:grid;position:relative;box-shadow:0 24px 70px #682e3e29,inset 0 1px #ffffffa3}.gateError{border-color:#c94a629e;box-shadow:0 0 0 1px #c94a6247,0 0 18px #c94a6233,0 24px 70px #682e3e21,inset 0 1px #ffffffa3}.gateError .passwordField{border-color:#c94a6299}.gateShake0{animation:.26s gateShakeA}.gateShake1{animation:.26s gateShakeB}.passwordField{cursor:text;background:#ffffffa8;border:1px solid #74374829;border-radius:6px;align-items:center;width:100%;min-width:0;min-height:52px;display:flex;position:relative;overflow:hidden}.passwordField:focus-within{border-color:#9b3f5b7a;box-shadow:0 0 0 4px #ef8fa733}.passwordInput{caret-color:#0000;color:#0000;background:0 0;border:0;outline:0;width:100%;height:100%;padding:0 18px;position:absolute;inset:0}.passwordInput::selection{color:#0000;background:#ef8fa73d}.passwordMask{color:var(--muted);pointer-events:none;text-overflow:ellipsis;white-space:nowrap;align-items:center;min-height:1.25em;padding:0 18px;line-height:1;display:inline-flex;overflow:hidden}.passwordMask.hasValue{color:var(--rose-deep);font-variant-ligatures:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:1rem}.passwordGlyph{flex:0 0 1.14em;place-items:center;width:1.14em;display:inline-grid}.passwordCaret{background:var(--rose-deep);letter-spacing:0;border-radius:999px;flex:none;width:2px;height:1.15em;margin-left:1px;animation:1s steps(2,start) infinite caretBlink;display:inline-block}.confirmButton{background:linear-gradient(135deg, var(--rose-deep), var(--rose));color:#fff;cursor:pointer;border:0;border-radius:6px;justify-content:center;align-items:center;min-width:62px;min-height:52px;padding:0 18px;transition:transform .16s,box-shadow .16s,opacity .16s;display:inline-flex}.confirmButton:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 26px #9b3f5b38}.confirmButton:active:not(:disabled){transform:translateY(0)}.confirmButton:disabled{cursor:wait;opacity:.68}.heartIcon{fill:currentColor;stroke-width:1.9px;width:24px;height:24px;transform:rotate(-30deg)}.successText{background:var(--glass-strong);border:1px solid var(--line);color:var(--ink);border-radius:8px;margin:0;padding:28px 34px;font-size:clamp(1.35rem,3vw,2.15rem);line-height:1.1;box-shadow:0 24px 70px #682e3e24,inset 0 1px #ffffffa8}.feedStage{align-items:start;min-height:100svh;padding:34px 18px;overflow:hidden auto}.feedShell{gap:14px;width:100%;max-width:min(640px,100vw - 36px);display:grid}.feedHeader,.composer,.visitorIpPanel,.postItem,.emptyFeed{background:var(--glass);border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 52px #682e3e1a,inset 0 1px #ffffff9e}.feedHeader{justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;display:flex}.profileName,.profileHandle,.postText,.postMeta,.composerError,.emptyFeed{margin:0}.profileName{color:var(--ink);font-size:1.15rem;font-weight:760;line-height:1.15}.profileHandle,.postHandle,.postMeta time,.composerCount{color:var(--muted);font-size:.84rem}.profileHandle{overflow-wrap:anywhere;line-height:1.35}.roleBadge{color:var(--rose-deep);background:#9b3f5b1a;border:1px solid #9b3f5b29;border-radius:999px;flex:none;padding:7px 10px;font-size:.76rem;font-weight:720}.composer{gap:10px;padding:12px;display:grid}.composerInput{color:var(--ink);resize:vertical;background:#ffffffb8;border:1px solid #74374829;border-radius:6px;outline:0;width:100%;min-height:116px;padding:13px 14px;line-height:1.45}.composerInput:focus{border-color:#9b3f5b7a;box-shadow:0 0 0 4px #ef8fa72e}.composerFooter{justify-content:space-between;align-items:center;gap:10px;display:flex}.postButton{background:linear-gradient(135deg, var(--rose-deep), var(--rose));color:#fff;cursor:pointer;border:0;border-radius:6px;min-height:40px;padding:0 18px;font-weight:720}.postButton:disabled{cursor:not-allowed;opacity:.56}.composerError{color:var(--error);font-size:.86rem}.visitorIpPanel{gap:8px;padding:14px 16px;display:grid}.visitorIpHeader,.visitorIpRow{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.visitorIpHeader{color:var(--muted);font-size:.78rem;font-weight:720}.visitorIpFilters{flex-wrap:wrap;gap:6px;display:flex}.visitorIpFilter{color:var(--muted);cursor:pointer;background:#ffffff8c;border:1px solid #74374826;border-radius:999px;min-height:28px;padding:0 9px;font-size:.74rem;font-weight:720}.visitorIpFilterActive{color:var(--rose-deep);background:#9b3f5b1f;border-color:#9b3f5b38}.visitorIpList{gap:7px;display:grid}.visitorIpRow{color:var(--ink);font-size:.9rem}.visitorIpIdentity{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}.visitorIpAddress{overflow-wrap:anywhere;min-width:0}.visitorIpNameInput{color:var(--rose-deep);background:#9b3f5b14;border:1px solid #9b3f5b24;border-radius:999px;outline:0;width:clamp(58px,22vw,124px);min-width:58px;min-height:24px;padding:2px 8px;font-size:.72rem;font-weight:720}.visitorIpNameInput:focus{background:#ffffffb3;border-color:#9b3f5b6b;box-shadow:0 0 0 3px #ef8fa729}.visitorIpNameInput::placeholder{color:#9d6a76b8}.visitorIpNameInput:disabled{opacity:.62}.visitorIpLocation{color:var(--muted);overflow-wrap:anywhere;min-width:0;font-size:.74rem}.visitorIpRow time{color:var(--muted);text-align:right;white-space:nowrap;justify-self:end;font-size:.82rem}.visitorIpEmpty,.visitorIpNameError{color:var(--muted);margin:0;font-size:.88rem}.visitorIpNameError{color:var(--error)}.postList{gap:12px;display:grid}.postItem{gap:10px;padding:16px 18px;display:grid}.postMeta{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.postIdentity{flex-wrap:wrap;gap:7px;min-width:0;display:flex}.postAuthor{color:var(--ink);font-weight:760}.postMeta time{text-align:right;white-space:nowrap;justify-self:end}.postText{color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;font-size:1.02rem;line-height:1.5}.emptyFeed{color:var(--muted);text-align:center;padding:18px}@keyframes lineDrift{0%{transform:translate(0,0)}to{transform:translateY(200.22px)}}@keyframes caretBlink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes gateShakeA{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}@keyframes gateShakeB{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}@media (max-width:560px){.stage{padding:20px}.gate{grid-template-columns:1fr;width:min(330px,100vw - 40px);max-width:calc(100vw - 40px)}.confirmButton{width:100%}.feedStage{padding:16px 10px}.feedShell{gap:10px;max-width:calc(100vw - 20px)}.feedHeader{align-items:start;padding:14px}.composer{padding:10px}.visitorIpPanel{padding:12px}.visitorIpHeader,.visitorIpRow{gap:8px}.visitorIpHeader,.visitorIpRow,.visitorIpRow time{font-size:.76rem}.visitorIpNameInput{max-width:104px;min-height:22px;padding:2px 7px;font-size:.68rem}.visitorIpFilter,.visitorIpLocation{font-size:.68rem}.composerInput{min-height:104px;padding:12px}.postItem{gap:9px;padding:14px 12px}.postMeta{gap:8px}.postHandle,.postMeta time{font-size:.76rem}.postText{font-size:.98rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
