@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap";:root{--primary-bg-color:#f4f6f9;--primary-text-color:#223040;--primary-text-dark-color:#0f2233;--primary-info-color:#4c5e71;--primary-accent-color:#1c3448;--secondary-accent-color:#0f2233;--highlight-color:#d9480f;--retro-color:#d9480f;--card-bg:#fff;--card-border:#d8e0ea;--section-shadow:0 4px 12px #0f22330a;--header-height:64px}body{background:var(--primary-bg-color);color:var(--primary-text-color);margin:0;padding:0;font-family:Space Grotesk,Segoe UI,sans-serif;line-height:1.65}a{color:var(--highlight-color);text-decoration:none;transition:color .2s}a:hover{text-decoration:underline}.site-header{border-bottom:1px solid var(--card-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#ffffffd9;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;padding:1rem 0;display:flex}.container{max-width:900px;margin:0 auto;padding:0 1.5rem}.brand{align-items:center;gap:.4rem;display:flex}.brand-mark{color:var(--retro-color);font-family:IBM Plex Mono,ui-monospace,Menlo,Monaco,Consolas,Courier New,monospace;font-size:1.1rem}.brand-name{letter-spacing:.01em;color:var(--primary-text-dark-color);font-weight:700}.site-nav a{text-transform:uppercase;letter-spacing:.1em;color:var(--primary-accent-color);border:1px solid #0000;border-radius:999px;margin-left:1rem;padding:.3rem .55rem;font-size:.8rem;font-weight:600}.site-nav a:hover{color:var(--highlight-color);background:#d9480f14;border-color:#d9480f26;text-decoration:none}.section{background:var(--card-bg);box-shadow:var(--section-shadow);scroll-margin-top:var(--header-height,64px);border:1px solid #d8e0eab3;border-radius:12px;margin:1rem 0;padding:1.75rem 2rem;transition:box-shadow .2s,border-color .2s}.section:hover{border-color:#d8e0eae6;box-shadow:0 6px 16px #0f22330f}.section h1,.section h2{letter-spacing:-.02em;color:var(--primary-text-dark-color);margin-top:0;line-height:1.2}.section-intro{color:var(--primary-info-color)}.project-group-heading{color:var(--primary-text-dark-color);letter-spacing:.04em;text-transform:uppercase;margin:2.25rem 0 1rem;font-size:1.05rem;font-weight:600}.about-layout{flex-wrap:wrap;align-items:flex-start;gap:2rem;display:flex}.about-photo img{border:2px solid var(--card-border);border-radius:14px;box-shadow:0 12px 24px #0f22331f}.hero-role{color:var(--primary-info-color);margin-top:.2rem;font-size:.95em;font-weight:500;display:block}.hero-subhead{color:var(--primary-info-color);font-size:1.1rem}.hero-ctas{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.hero-ctas .btn,.hero-ctas .btn:hover{text-decoration:none}.btn-hero{color:#fff;text-decoration:none;display:inline-block}.btn-hero:hover{text-decoration:none}.hero-ctas .btn-secondary.btn-hero{color:var(--primary-accent-color)}.contact-ctas{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.contact-ctas .btn,.contact-ctas .btn:hover{text-decoration:none}.bishopcotech-value-props{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin:1.5rem 0;display:grid}.value-prop{border:1px solid var(--card-border);background:linear-gradient(140deg,#fff 0%,#f8fbff 100%);border-radius:12px;padding:1rem 1.2rem}.value-prop h4{color:var(--primary-text-dark-color);margin:0 0 .5rem;font-size:.95rem}.value-prop p{color:var(--primary-info-color);margin:0;font-size:.9rem}.skills-matrix{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin:1.5rem 0;display:grid}.skill-pillar{border:1px solid var(--card-border);background:linear-gradient(140deg,#fff 0%,#f8fbff 100%);border-radius:12px;padding:1rem 1.2rem}.skill-pillar h4{color:var(--primary-text-dark-color);margin:0 0 .6rem;font-size:.95rem}.skill-pillar ul{color:var(--primary-info-color);margin:0;padding-left:1.15rem;font-size:.9rem;line-height:1.65}.skill-pillar li{margin-bottom:.35rem}.skill-pillar li:last-child{margin-bottom:0}.skills-linked-in-hint{color:var(--primary-info-color);margin-top:.75rem;font-size:.9rem}.bishopcotech-ctas{flex-wrap:wrap;gap:.75rem;display:flex}.bishopcotech-ctas .btn,.bishopcotech-ctas .btn:hover{text-decoration:none}.contact-details p{margin:.6rem 0}.contact-details .btn{margin-top:.75rem;text-decoration:none;display:inline-block}.contact-details .btn:hover{text-decoration:none}.track-record-highlight{border-left:4px solid var(--highlight-color);background:linear-gradient(140deg,#fff9f6 0%,#fff 100%);border-radius:0 12px 12px 0;margin:1.5rem 0;padding:1rem 1.25rem}.track-record-highlight p{color:var(--primary-text-color);margin:0}.clients-intro{color:var(--primary-info-color);margin-bottom:.5rem}.clients-list{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0 0 1rem;padding-left:0;list-style:none;display:flex}.clients-list li{color:var(--primary-accent-color);background:#d9480f14;border-radius:999px;padding:.35rem .75rem;font-size:.9rem;font-weight:500}.project-list{gap:1rem;margin-top:1.25rem;display:grid}.story-timeline{border-left:2px solid #ced9e6;gap:1.1rem;margin-top:1.2rem;padding-left:1rem;display:grid}.timeline-item{position:relative}.timeline-item:before{content:"";background:var(--highlight-color);border-radius:999px;width:10px;height:10px;position:absolute;top:.35rem;left:-1.42rem;box-shadow:0 0 0 4px #fff3ea}.timeline-label{text-transform:uppercase;letter-spacing:.09em;color:var(--primary-accent-color);margin:0 0 .45rem;font-size:.8rem;font-weight:700}.timeline-card{border:1px solid var(--card-border);background:linear-gradient(140deg,#fff 0%,#f8fbff 100%);border-radius:12px;grid-template-columns:240px 1fr;align-items:center;gap:.9rem;padding:.8rem;display:grid}.timeline-photo{background:#edf2f8;border:1px solid #d2deea;border-radius:10px;margin:0;overflow:hidden}.timeline-photo img{object-fit:contain;background:#edf2f8;width:100%;height:200px;display:block}.project-card{border:1px solid var(--card-border);background:linear-gradient(140deg,#fff 0%,#f8fbff 100%);border-radius:12px;padding:1.1rem 1.2rem;transition:transform .2s,box-shadow .2s,border-color .2s}.project-card:hover{border-color:#bfd0e4;transform:translateY(-2px);box-shadow:0 10px 22px #0f22331f}.project-card h3{margin:0}.project-card p{margin:.7rem 0 0}.project-links{font-size:.9rem;font-weight:500}.project-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.project-status{text-transform:uppercase;letter-spacing:.08em;border:1px solid #0000;border-radius:999px;padding:.2rem .5rem;font-size:.72rem;font-weight:600}.status-done,.status-neverending{color:#0d5f44;background:#e8f8ef;border-color:#9fdfbe}.status-beta{color:#174a9c;background:#e8f1ff;border-color:#aac7f7}.status-prebeta{color:#6c2f9d;background:#f4e9ff;border-color:#d5b7f8}.status-live{color:#0d5f44;background:#e8f8ef;border-color:#9fdfbe}.status-progress{color:#8f3500;background:#fff2e6;border-color:#f6b189}.idea-card{border:1px dashed var(--card-border);background:#f8fbff;border-radius:12px;margin-top:1.5rem;padding:1.25rem}.idea-tag{text-transform:uppercase;letter-spacing:.12em;color:var(--primary-info-color);margin-bottom:.5rem;font-size:.8rem}.idea-controls{gap:.75rem;margin-top:1rem;display:flex}.btn{border:1px solid var(--highlight-color);background:var(--highlight-color);color:#fff;letter-spacing:.02em;cursor:pointer;border-radius:999px;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;transition:transform .15s,filter .2s}.btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-secondary{border-color:var(--card-border);color:var(--primary-accent-color);background:#fff}.btn-secondary:hover{background:#f3f4f6}.site-footer{color:var(--primary-info-color);text-align:center;padding:1.5rem 0 2rem;font-size:.8rem}.legal-section p{margin-bottom:.85rem}.footer-links{margin:0 0 .7rem}.legal-link-btn,.cookie-settings-btn{font:inherit;color:var(--highlight-color);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.legal-modal{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200;background:#0f22338c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.legal-modal[hidden]{display:none}.legal-modal-dialog{border:1px solid var(--card-border);background:#fff;border-radius:14px;width:min(760px,100%);padding:1rem 1.1rem;box-shadow:0 20px 36px #0f223333}.legal-modal-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.legal-modal-head h3{color:var(--primary-text-dark-color);margin:0}.legal-close-btn{font:inherit;border:1px solid var(--card-border);color:var(--primary-accent-color);cursor:pointer;background:#fff;border-radius:999px;padding:.3rem .7rem;font-size:.88rem;font-weight:600}.legal-modal-body{color:var(--primary-info-color);margin-top:.7rem}.legal-modal-body p{margin:0 0 .75rem}.consent-banner{z-index:1100;position:fixed;bottom:1rem;left:1rem;right:1rem}.consent-content{border:1px solid var(--card-border);background:#fff;border-radius:14px;max-width:880px;margin:0 auto;padding:1rem 1.1rem;box-shadow:0 18px 34px #0f22332e}.consent-content h3{color:var(--primary-text-dark-color);margin:0 0 .4rem}.consent-content p{color:var(--primary-info-color);margin:0;font-size:.92rem}.consent-details{border-top:1px solid var(--card-border);gap:.5rem;margin-top:.8rem;padding-top:.75rem;display:grid}.consent-option{color:var(--primary-accent-color);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.consent-actions{flex-wrap:wrap;gap:.55rem;margin-top:.9rem;display:flex}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1.25rem;display:grid}.skill-group{border:1px solid var(--card-border);background:linear-gradient(140deg,#fff 0%,#f8fbff 100%);border-radius:12px;padding:1rem 1.1rem}.skill-group h4{color:var(--primary-accent-color);margin:0 0 .4rem;font-size:.9rem}.skill-group p{color:var(--primary-info-color);margin:0;font-size:.88rem}.contact-layout{grid-template-columns:1fr 1fr;align-items:start;gap:2rem;margin-top:1.25rem;display:grid}.contact-form-wrapper{max-width:420px}.contact-form-fallback{color:var(--primary-info-color);margin:0;font-size:.95rem}.contact-form{flex-direction:column;gap:.9rem;display:flex}.contact-form-field{flex-direction:column;gap:.25rem;display:flex}.contact-form-field label{color:var(--primary-text-dark-color);font-size:.9rem;font-weight:700}.contact-form-field input,.contact-form-field textarea{border:1px solid var(--card-border);font:inherit;color:var(--primary-text-color);background:#f8fafc;border-radius:.5rem;outline:none;padding:.6rem .75rem;transition:border-color .12s,box-shadow .12s}.contact-form-field input:focus,.contact-form-field textarea:focus{border-color:var(--highlight-color);box-shadow:0 0 0 1px color-mix(in srgb, var(--highlight-color) 40%, transparent);background:#fff}.contact-form-field textarea{resize:vertical;min-height:120px}.contact-form-status{margin-top:.25rem;font-size:.9rem}.contact-form-status--success{color:#0d5f44}.contact-form-status--error{color:#b91c1c}@media (width<=779px){.header-inner{flex-direction:column;align-items:flex-start;gap:.8rem}.site-nav{flex-wrap:wrap;gap:.5rem;display:flex}.site-nav a{margin-left:0}.section{margin:.75rem 0;padding:1.25rem 1.35rem}.about-layout{gap:1.1rem}.timeline-card{grid-template-columns:1fr}.timeline-photo img{height:220px}.contact-layout{grid-template-columns:1fr;gap:1.5rem}.skills-grid{grid-template-columns:1fr}.consent-banner{bottom:.7rem;left:.7rem;right:.7rem}.consent-content,.legal-modal-dialog{padding:.9rem}.about-photo{display:none}}@media (width>=780px){.about-layout{justify-content:space-between}#about-layout-text{width:50%}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.portfolio-chat-section{position:relative}.portfolio-chat{flex-direction:column;gap:1rem;min-height:320px;display:flex}.portfolio-chat--embedded{flex:1;height:100%;min-height:0}.portfolio-chat-header{margin-bottom:.25rem}.portfolio-chat-title{color:var(--primary-text-dark-color);margin:0 0 .35rem;font-size:1.35rem}.portfolio-chat-subtext{color:var(--primary-info-color);margin:0;font-size:.95rem}.portfolio-chat-messages{border-top:1px solid var(--card-border);border-bottom:1px solid var(--card-border);flex-direction:column;flex:1;gap:.75rem;min-height:200px;max-height:min(52vh,420px);padding:.5rem 0;display:flex;overflow-y:auto}.portfolio-chat--embedded .portfolio-chat-messages{max-height:min(50vh,380px)}.portfolio-chat-empty p{color:var(--primary-info-color);margin:0 0 .65rem;font-size:.9rem}.portfolio-chat-chips{flex-wrap:wrap;gap:.5rem;display:flex}.portfolio-chat-chip{font:inherit;border:1px solid var(--card-border);color:var(--primary-accent-color);cursor:pointer;background:#f8fbff;border-radius:999px;padding:.45rem .75rem;font-size:.85rem;transition:background .15s,border-color .15s}.portfolio-chat-chip:hover:not(:disabled){background:#d9480f14;border-color:#d9480f33}.portfolio-chat-chip:disabled{opacity:.6;cursor:not-allowed}.portfolio-chat-bubble{border-radius:12px;max-width:92%;padding:.75rem 1rem;font-size:.95rem;line-height:1.55}.portfolio-chat-bubble p{margin:0}.portfolio-chat-bubble--user{background:var(--highlight-color);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.portfolio-chat-bubble--assistant{border:1px solid var(--card-border);color:var(--primary-text-color);background:#f8fbff;border-bottom-left-radius:4px;align-self:flex-start}.portfolio-chat-bubble--loading{color:var(--primary-info-color);align-items:center;gap:.5rem;display:flex}.portfolio-chat-answer{white-space:pre-wrap}.portfolio-chat-spinner{border:2px solid var(--card-border);border-top-color:var(--highlight-color);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite portfolio-chat-spin}@keyframes portfolio-chat-spin{to{transform:rotate(360deg)}}.portfolio-chat-sources{border-top:1px dashed var(--card-border);margin-top:.65rem;padding-top:.55rem}.portfolio-chat-sources-toggle{font:inherit;color:var(--primary-accent-color);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600;text-decoration:underline}.portfolio-chat-sources-list{gap:.5rem;margin-top:.5rem;display:grid}.portfolio-chat-source{border:1px solid var(--card-border);background:#fff;border-radius:8px;padding:.55rem .65rem;font-size:.82rem}.portfolio-chat-source-title{color:var(--primary-text-dark-color);margin:0 0 .25rem;font-weight:600}.portfolio-chat-source-content{color:var(--primary-info-color);white-space:pre-wrap;margin:0}.portfolio-chat-source-toggle{font:inherit;color:var(--highlight-color);cursor:pointer;background:0 0;border:none;margin-top:.35rem;padding:0;font-size:.78rem;text-decoration:underline}.portfolio-chat-error{background:#fff5f0;border:1px solid #d9480f40;border-radius:10px;padding:.75rem 1rem;font-size:.9rem}.portfolio-chat-error p{color:var(--primary-text-color);margin:0 0 .5rem}.portfolio-chat-retry{padding:.4rem .85rem;font-size:.85rem}.portfolio-chat-form{flex-wrap:wrap;align-items:flex-end;gap:.65rem;display:flex}.portfolio-chat-input{border:1px solid var(--card-border);min-height:2.75rem;font:inherit;resize:vertical;color:var(--primary-text-color);background:#fff;border-radius:10px;flex:200px;padding:.55rem .75rem;font-size:.95rem}.portfolio-chat-input:focus{outline-offset:1px;border-color:#d9480f66;outline:2px solid #d9480f59}.portfolio-chat-input:disabled{opacity:.7;cursor:not-allowed}.portfolio-chat-send{flex-shrink:0}.portfolio-chat-launcher{z-index:1050;border:1px solid var(--highlight-color);background:var(--highlight-color);color:#fff;font:inherit;cursor:pointer;border-radius:999px;padding:.65rem 1.1rem;font-size:.88rem;font-weight:600;transition:transform .15s,filter .15s;position:fixed;bottom:1.25rem;right:1.25rem;box-shadow:0 8px 24px #0f22332e}.portfolio-chat-launcher:hover{filter:brightness(1.05);transform:translateY(-1px)}.portfolio-chat-drawer-backdrop{z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f223373;justify-content:flex-end;align-items:stretch;padding:0;display:flex;position:fixed;inset:0}.portfolio-chat-drawer{background:var(--card-bg);flex-direction:column;width:min(440px,100%);max-width:100%;height:100%;padding:1rem 1.25rem 1.25rem;display:flex;overflow:hidden;box-shadow:-8px 0 32px #0f223326}.portfolio-chat-drawer-head{flex-shrink:0;justify-content:flex-end;margin-bottom:.25rem;display:flex}.portfolio-chat-drawer-close{font:inherit;border:1px solid var(--card-border);color:var(--primary-accent-color);cursor:pointer;background:#fff;border-radius:999px;padding:.3rem .75rem;font-size:.88rem;font-weight:600}@media (width<=780px){.portfolio-chat-launcher{padding:.55rem .95rem;font-size:.82rem;bottom:.85rem;right:.85rem}.portfolio-chat-drawer{width:100%;padding:.85rem 1rem 1rem}.portfolio-chat-bubble{max-width:100%}}
